Thanks Julian, Hopefully it will be even more full featured at that point! -Alex
On Wed, Jul 31, 2019 at 2:06 AM Julian Brooks jbeezez@gmail.com wrote:
Nice work Alex,
Look fwd to digging through these on my return from holidays.
All the best,
Julian
On Tue, 30 Jul 2019 at 16:57, x nor x37v.alex@gmail.com wrote:
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:
https://github.com/x37v/puredata-rust
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: https://github.com/pure-data/externals-howto https://github.com/x37v/puredata-rust/tree/develop/examples
With the help of a macro and attributes, beyond the dependency setup, this is all you need to write a signal external:
https://github.com/x37v/puredata-rust/blob/develop/examples/xfade/src/lib.rs or a control external:
https://github.com/x37v/puredata-rust/blob/develop/examples/complex_counter/...
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 _______________________________________________ Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev