Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Dev Space

Customize and extend the power of Alteryx with SDKs, APIs, custom tools, and more.

Creating Alteryx plugins with Rust?

benstroud
7 - Meteor

Hello,

I'm interested in the possibility of creating Alteryx plugins using Rust (https://www.rust-lang.org/) instead of C++ or the higher level languages that are supported. Is this a possibility?

 

Thanks

1 REPLY 1
tlarsen7572
11 - Bolide
11 - Bolide

This is officially the best discussion of 2022.

 

Short answer: This should very much be possible.

 

The E1 engine uses a C API to instantiate plugins. I've built a Go SDK using that C API and have successfully built custom tools with Go.

 

I tried at one point to learn Rust with the thought of maybe doing a Rust SDK, but couldn't get my head around the memory ownership model and didn't have the free time to figure it out. If you already understand Rust, it should be much easier for you.

 

If you want to learn more about the C API, there is a folder in the Alteryx installation folder called 'APIs'. Inside is another folder called 'AlteryxPluginAPI' that has a lot of C++ code showing how C++ tools interact with the C API. I found this invaluable to building my own SDK. There are other guides and documents in the APIs folder, so I suggest you take advantage of what is there.

 

Final note: Alteryx has not yet released any API information regarding the AMP engine. Not sure why...it's a point of frustration for me. So for the moment your tools will 'downgrade' to E1 if they are run in an AMP workflow. They will still work, but won't take advantage of the multi-threading model the AMP engine provides.