What's your plugin model for Rust? Are they compiletime or interpreted?
We considered WASM and libloading, but plugins often require database connections or other privileges. With WASM, supporting that would be the SDK’s responsibility.
Dynamic loading with libloading didn’t offer enough benefit for this design, so we chose modular crates compiled into the application.
There can be a lot of permutations to create of course but each one only needs to be built once per version you release.
To limit permutations you can always create pre-selected bundles of related plugins (like package groups on Linux distros) and let people select those bundles. They can always fall back to building it themselves if they really need to be picky about the plugin selection.