#opus #libopus #bindings #ffi

sys no-std opus-static-sys

Rust bindings to the reference Opus library (libopus)

2 stable releases

new 1.0.1 Feb 18, 2025

#288 in Audio

28 downloads per month
Used in libopusenc-static-sys

MIT license

6MB
72K SLoC

C 53K SLoC // 0.2% comments Python 17K SLoC // 0.3% comments Shell 548 SLoC // 0.2% comments GNU Style Assembly 538 SLoC Automake 424 SLoC // 0.1% comments Jupyter Notebooks 318 SLoC // 0.0% comments Perl 264 SLoC // 0.2% comments M4 199 SLoC // 0.3% comments Rust 147 SLoC Batch 14 SLoC // 0.1% comments

Contains (obscure autoconf code, 41KB) opus/configure.ac

About

opus-static-sys is an FFI Rust-binding to the reference Opus library libopus.

It uses bindgen to dynamically generate all Rust bindings and documentation, and will always compile a static version of the underlying Opus library to ensure cross-system capability without having to ensure that Opus is installed on the target system.

The library is fully no_std compatible and represents the minimal amount of overhead or glue code needed to utilize libopus within a Rust project.

Rust documentation can be found here, which corresponds directly to the libopus documentation.

Building

In order to use this crate, you will need both cmake and clang installed on your build computer. Most Linux-based operating systems provide these via the built-in package manager under:

  • Clang: libclang-dev, libclang, llvm, or clang. On Windows, you may need to manually install Clang from the Official Download Page and set a corresponding LIBCLANG_PATH environment variable.
  • Cmake: cmake or from the Clang Download Page for Windows.

Installation

To use, add the following to your Cargo.toml file:

[dependencies]
opus-static-sys = "1.0"

License

This library is licensed under the MIT license.

Dependencies