I’m pretty sure Rust doesn’t allow this, but I’m not 100% sure.

Always a good starting point: rust.audio and Ian Hobson - An introduction to Rust for audio developers

3 Likes

Just discovered someone wrote up pure data bindings for rust: https://github.com/x37v/puredata-rust and they created some macros and build scripts for making externals. Unfortunately something’s up with the packaging and I wasn’t able to get it fully working last night (building worked but doesn’t output a useable .pd_linux), hopefully better luck today!

6 Likes

figured out the build step, it was entirely naming.

  • name of binary has to match name of external ([package] name and [lib] name in Cargo.toml also affect this, and I haven’t found a pattern to how underscores and hyphens are treated.)
  • on my machine anyway, pd builds end up with .l_amd64 extension which needs to be changed to .pd_linux.
  • for the future I’ll be modifying the provided cargo-make Makefile.toml per-case
2 Likes