Encode and decode 48 kHz audio using the CELT-only raw packet format in a Rust application.
Benchmark Rust audio codec performance against the original C libopus library.
Study or contribute to a from-scratch Rust port of a complex audio codec.
| wavey-ai/libopus-rs | 404-agent/codes-miner | bakome-hub/bakome-crypto-quant-engine | |
|---|---|---|---|
| Stars | 0 | 0 | 0 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 5/5 | 3/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Benchmarks against libopus need a built C reference via pkg-config or OPUS_DIR.
libopus-rs is a Rust rewrite of the libopus audio codec, version 1.5.2. Opus is a widely used audio compression format, and this project is not a wrapper that calls the original C library, it is an actual from-scratch implementation of the codec logic in Rust. The upstream C test suite is used as a reference to check the new code behaves the same way as the original. The project is still in progress. Right now it supports safe packet parsing, a repacketizer, soft clipping, and the core CELT encoding and decoding math needed for raw audio frames. CELT is the part of Opus designed for music and general audio at low latency. Using the Encoder and Decoder types included in the crate, developers can encode and decode 48 kHz audio in CELT-only mode with several frame lengths and bitrate control options. What is missing so far is support for Ogg Opus files and the SILK speech mode, so this is not yet a complete Opus implementation. The whole crate is written in safe Rust, using a compiler flag that forbids unsafe code, and it does not offer a C-compatible interface, so it cannot be used as a drop-in replacement for the original C library in software written in other languages. Two documentation files in the repository track progress: one lists the module-by-module porting plan and test status, and the other explains the project's policy on unsafe code. Developers can try it out with a command-line example called wav_celt, which encodes and decodes WAV audio files to test round-trip quality. The README also includes benchmark scripts that compare the Rust implementation's speed against the original C library, showing the Rust encoder currently runs faster in testing while the decoder runs slower. The maintainers are actively working on getting byte-for-byte compatibility with libopus output and list specific next steps for closing remaining gaps in the encoder. The project is licensed under BSD-3-Clause, the same license as the original libopus library.
A pure Rust rewrite of the Opus audio codec (libopus), currently supporting safe CELT-only encoding and decoding of raw audio frames.
Mainly Rust. The stack also includes Rust.
Free to use, modify, and distribute, including commercially, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.