> SoundStream requires that you have the PortAudio lib installed on your system
Meh.
Theres really no excuse, given cargo now has proper support for building cross platform dependencies.
My least favourite thing about rust is trying to use a crate only to find 'author assumed you already had dependencies installed. sorry'
That can be via package manager, pkg-config, static library download, building them, or via prompting the user to install them manually.
Since rust supports the #[cfg(target="foo")] in build scripts, you can even implement your solution for just one platform, and then slowly add additional platform support as people demand it.
A message like: "Hey, your platform isn't supported by our build script; submit a bug at ... if you'd like to get support added. We welcome push requests". <-- A+++
For example, android support is probably not a target for most crates, but it may be an important target in the future for many libraries. ...and building a cross-compiled android binary is a LOT more involved than just an 'apt-get install foo'.
Just failing? Nope.
I've talked with the author of the PortAudio bindings and we're planning on including a static lib with the repo instead (along with a cargo build script), so that should hopefully make it as easy to use as any other crate.
I've seen many discussions here about rechanging the api of the libraries since they were expecting features from the language.