there's also the option of using a different audio engine, if you're looking for a specific feature. for example bevy_kira_audio does this, though it may also be lacking the advanced features you mentioned.
thanks to Bevy already being built on the wgpu Rust crate, which implements a API similar to WebGPU but with many different backends, Bevy never really interacted with WebGL directly. in fact, the PR to add WebGPU support was not that large, with as far as i can tell most changes consisting of initialisation code being moved around.
https://github.com/bevyengine/bevy/pull/8336/files
i only really learnt Rust 1 year ago. Combined with a awful memory for names, i had no clue who wrote the article.
Now, the thing is, it's entirely believable to me. Having witnessed the Stroustrup paper which honestly had some way less believeable yet honest reactions, i didn't even blink an eye.
I would have gone in with my day believing "well that's just dumb" had something not compelled me to click this post linked in the same mastodon post.
i wonder if the target audience might just be way too small for a post like this.
You should also keep in mind that a lot of Rust library developers release many individual crates from within the same project, inflating the crate count somewhat.
Rust by default only does a full build really rarely. Ive gone through days, even weeks, of working on a project without a full build.
Partial builds are of course way faster, especially if you use many dependencies (i know you don't). I mainly work with the bevy game engine in Rust, which has a lot of dependencies. Even if i don't use its dylib feature, i get 2-3s compiles. And that's on a project with multiple hundreds of thousands LoC when you include dependencies. With dylib, it goes down to 0.5-1 second builds.
If your main conclusion is based on full builds, i would urge you to re-evaluate. The normal experience is just "cargo run" which rarely does a full build.
I've got a ~9k loc Bevy "game" I'm writing that doesn't use dylib and takes > 20 secs every update, purely because of the linking (I'm not using mold yet, but am using lld)...
i.e., I type 'cargo build', it compiles the single .rs I changed almost instantly, but then I'm staring at:
Building [=======================> ] 314/315: landscape(bin)