finds.dev← search

// the find

RustAudio/rodio

★ 2,408 · Rust · Apache-2.0 · updated Jun 2026

Rust audio playback library

rodio is a Rust audio playback library that sits on top of cpal (for device I/O) and Symphonia (for decoding). It gives you a Source trait-based pipeline where you chain effects—volume, speed, reverb, filters, spatial audio—and push them to a sink. Aimed at game devs and tool builders who need audio without pulling in a full engine.

The Source iterator chain is genuinely well-designed: every effect is composable and you can slot in custom sources without touching rodio internals. Symphonia as the default decoder covers most formats (MP3, FLAC, OGG, WAV, Opus, M4A) out of the box without needing external C libraries on most platforms. The minimal-build option—decode-only, no playback, no cpal dependency—is a thoughtful escape hatch for server-side audio processing. Benchmarks and a real test asset suite (multiple bit depths, multiple formats) suggest the maintainers actually care about correctness, not just CI green.

The API instability is a real cost: the README openly tells you the examples on crates.io may not match the current code and pins you to a specific commit hash—that's a red flag for production use. Cross-compilation for ARM Linux requires a multi-step manual dance with ALSA multiarch packages that is easy to get wrong and not automated. There's no built-in audio recording/capture story beyond the microphone module, which is sparse. Spatial audio is 2D only (left/right panning via the spatial source), so anything requiring proper 3D HRTF is out of scope.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →