Description
Moving to use the objc2
crate is pretty cool. Speeds up compiler time substantially, removes the dependency on clang which has been broken by xcode updates - RustAudio/coreaudio-sys#79, RustAudio/coreaudio-sys#75, and RustAudio/coreaudio-sys#112.
These changes are pretty breaking but the main reverse dependency is cpal
. The second most downloaded reverse dependency is riff-wave
but hasn't been updated in 3 years and uses coreaudio-rs
0.5.
It seems that there are three active projects that use coreaudio-rs
directly - cpa
, surge-rs and aloe-rs
.
So, using @madsmtm's PR to cpal - RustAudio/cpal#943, the dependents of cpal shouldn't have a breaking change but let's go through some testing of cpal`s reverse dependencies.
Here are the list of projects considered - checked means that it's either not applicable or I have test it:
- hound uses cpal 0.2.12 - released 9 years ago because it supports rust 1.40.
- https://github.com/RustAudio/rodio - tested various examples on macOS (aarch64). Tested
noise_generation
example with iOS sim (aarch64). Getting the example assets into the app viadinghy
is more difficult than it should be. -
https://github.com/berkowski/tokio-serialI don't have the correct hardware to test this. I did compile it (for macos). - bevy via
bevy_audio
- tested macOS (aarch64), iOS sim (aarch64), iOS (on device) - https://github.com/tesselode/kira - audio example work great on macOS (big fan). All of the examples have assets so testing in iOS is problematic.
-
https://github.com/amethyst/amethyst(repo archived) - https://github.com/librespot-org/librespot - Patched with Fix compiler error when
objc2
is in dependency tree librespot-org/librespot#1503 - https://github.com/orottier/web-audio-api-rs - Tested various examples on
aarch64-apple-ios-sim
(had to remove theresources
directory for dinghy) andaarch64-apple-darwin
- https://github.com/SamiPerttu/fundsp -
aarch64-apple-darwin
works. Dev dependencies requireeframe
which depends onglutin
and that does not support iOS targets (at least with the current version). - https://github.com/ThomasHabets/rustradio -
aarch64-apple-darwin
,aarch64-apple-ios-sim
andx86_64-apple-darwin
works with thetone
example. - https://codeberg.org/sbechet/xmrsplayer - complies and runs for
aarch64-apple-darwin
but I don't have anXM or XmRs File
for the example.