#opus #bindings #libopus #ffi #libopusenc

sys no-std libopusenc-static-sys

Rust bindings to the reference Opus Encoder library (libopusenc)

2 stable releases

new 1.0.1 Feb 18, 2025

#502 in Audio

40 downloads per month

MIT license

170KB
4K SLoC

C 3K SLoC // 0.1% comments M4 225 SLoC // 0.2% comments Rust 177 SLoC Visual Studio Project 172 SLoC Automake 88 SLoC // 0.2% comments Visual Studio Solution 43 SLoC Batch 20 SLoC Shell 5 SLoC // 0.3% comments

Contains (obscure autoconf code, 6KB) libopusenc/configure.ac

About

libopusenc-static-sys is an FFI Rust-binding to the reference Opus Encoder library libopusenc.

It uses bindgen to dynamically generate all Rust bindings and documentation, and will always compile a static version of the underlying Opus Encoder 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 libopusenc within a Rust project.

Rust documentation can be found here, which corresponds directly to the libopusenc 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]
libopusenc-static-sys = "1.0"

License

This library is licensed under the MIT license.

Dependencies

~6–8.5MB
~118K SLoC