Upgrading Server to version 22.1? We’ve enabled the faster AMP engine by default. Read about how these system settings changes might affect you.

We’re aware of an intermittent issue with our My Alteryx login and are actively working to have the issue corrected. If you run into an error when logging in, please try clearing all cookies or accessing the community on a different browser. Thank you for your patience!

Dev Space

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

Creating Alteryx plugins with Rust?

benstroud
6 - Meteoroid

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

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.