#opus #codec #api-bindings

sys audiopus_sys

FFI-Binding to Opus,Windows 和 UNIX 的动态或静态链接

12 个版本

0.2.2 2021 年 4 月 22 日
0.2.1 2021 年 4 月 22 日
0.1.8 2020 年 11 月 12 日
0.1.7 2020 年 1 月 16 日
0.1.1 2019 年 3 月 29 日

#868 in 音频

Download history 2498/week @ 2024-03-14 2223/week @ 2024-03-21 1915/week @ 2024-03-28 2002/week @ 2024-04-04 1798/week @ 2024-04-11 1945/week @ 2024-04-18 2043/week @ 2024-04-25 1838/week @ 2024-05-02 1828/week @ 2024-05-09 2060/week @ 2024-05-16 2202/week @ 2024-05-23 2154/week @ 2024-05-30 1798/week @ 2024-06-06 2128/week @ 2024-06-13 2188/week @ 2024-06-20 1825/week @ 2024-06-27

8,317 每月下载量
用于 21 个 Crates (5 直接)

ISC 许可证

2.5MB
46K SLoC

C 41K SLoC // 0.2% comments Rust 1.5K SLoC Visual Studio Project 1K SLoC GNU Style Assembly 538 SLoC Python 352 SLoC // 0.1% comments Automake 313 SLoC // 0.1% comments Perl 264 SLoC // 0.2% comments M4 199 SLoC // 0.3% comments Shell 183 SLoC // 0.4% comments Visual Studio Solution 168 SLoC Batch 20 SLoC

包含 (晦涩的 autoconf 代码,35KB) opus/configure.ac

ci-badge docs-badge rust version badge crates.io version

关于

audiopus_sysOpus 版本 1.3 的 FFI-Rust 绑定。

最初,这个 sys-crate 是为了使 serenity-crate 能够在 Windows、Linux 和 Mac 上构建音频功能。但是,它并不局限于这一点。

欢迎每个人贡献力量,有关进一步指导,请查看 CONTRIBUTING.md

构建

需求

如果您想构建 Opus,则需要 cmake

如果您有 pkg-config,它将在构建之前尝试使用它。

您还可以链接预先安装的 Opus,请参见下文的 预安装 Opus

此 crate 提供了一个预构建的绑定。如果您想自己生成绑定,则需要 Clang,有关进一步说明,请参见下文的 预安装 Opus

链接

audiopus_sys 链接到 Opus 1.3,并支持 Windows、Linux 和 MacOS。默认情况下,我们为 Windows、MacOS 和使用 musl 环境的情况静态链接。对于 Linux,除非使用上述 musl,否则我们将动态链接。

可以通过编译时带有 staticdynamic 功能来更改此设置,它们的效果分别对应它们的名称。如果这两个功能都启用,我们将选择您的系统默认值。

名为 LIBOPUS_STATICOPUS_STATIC 的环境变量将优先于功能,从而覆盖行为。这些环境变量的值不会影响结果:如果其中之一被设置,将选择静态链接。

Pkg-Config

默认情况下,audiopus_sys 将在 Unix 或 GNU 上使用 pkg-config。设置环境变量 LIBOPUS_NO_PKGOPUS_NO_PKG 将绕过通过 pkg-config 查找 Opus。

预安装的 Opus

如果您已经预安装了 Opus,可以将 LIBOPUS_LIB_DIROPUS_LIB_DIR 设置为包含 Opus 的目录。

请注意,使用版本不是 1.3 的 Opus 可能无法正常工作。

生成绑定

如果您想自己生成绑定,可以使用 generate_binding-功能。

请注意,bindgen 需要 Clang,并且需要指定其 LIBCLANG_PATH 环境变量。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
audiopus_sys = "0.2"

无运行时依赖项