This is very much still a work in progress, but recently I've been working on writing pure data externals in Rust and I figured I'd share:
Rust can create dynamic libraries that can be loaded in C based projects without the need for any external build tools, building simply uses rusts `cargo` build system (and package manager).
I've setup the automatic binding to `m_pd.h` (puredata-sys), some ease of use classes for creating externals, and a macro that generates a bunch of boiler plate code so you don't have to.
With this I've created Rust versions of the 4 example externals from the HOWTO:
With the help of a macro and attributes, beyond the dependency setup, this is all you need to write a signal external:
or a control external:
Anyways, I figured I'd share in case anyone else is interested, maybe wants to contribute or just use it themselves.
I'm tired/done with c/c++ and Rust has presented itself as a great alternative for a lot of situations.
It was fun to discover that I can generate pure data externals with Rust and its build system.
--Alex