23个版本

使用旧的Rust 2015

0.13.0 2024年5月13日
0.12.0 2024年1月16日
0.10.7 2023年12月12日
0.10.3 2022年10月6日
0.5.1 2018年3月23日

#456 in 音频

Download history 217/week @ 2024-04-16 325/week @ 2024-04-23 327/week @ 2024-04-30 507/week @ 2024-05-07 452/week @ 2024-05-14 408/week @ 2024-05-21 330/week @ 2024-05-28 159/week @ 2024-06-04 324/week @ 2024-06-11 311/week @ 2024-06-18 211/week @ 2024-06-25 532/week @ 2024-07-02 642/week @ 2024-07-09 654/week @ 2024-07-16 594/week @ 2024-07-23 486/week @ 2024-07-30

2,465每月下载量
4个Crate中使用(通过cubeb-core

ISC许可证

1MB
24K SLoC

C++ 15K SLoC // 0.1% comments C 8K SLoC // 0.1% comments Rust 635 SLoC // 0.1% comments Shell 9 SLoC

cubeb-rs ISC License

Rust的跨平台音频库。

特性

提供以下访问权限

  • 跨多个平台的多音频后端。有关详细信息,请参阅此处
  • 枚举可用的音频设备。
  • 以控制延迟、采样率、声道布局、状态转换、数据处理等的方式打开输入、输出和全双工音频流。

目标

目前,cubeb-rs基于对原始cubeb C++库的绑定,该库最著名的是作为Gecko(Mozilla的浏览器引擎)中的音频后端。对于cubeb-rs的长期目标是独立于C++库,并最终在Gecko中尽可能替换原始库,提供一个纯Rust实现,直到平台API级别。

为了实现这一目标,cubeb-rs以支持纯Rust和通过绑定到C++实现的方式来组织后端实现,从而实现渐进式替换。到目前为止,已存在纯Rust实现

计划在未来不久将所有与cubeb相关的项目(包括后端实现)整合到单个仓库中这里

虽然cubeb主要因其Gecko内的使用而闻名,但欢迎来自Gecko以外项目的贡献和使用。

仓库

以下仓库包含以下项目

项目 链接 描述
cubeb crates.io docs.rs cubeb-rs的最高层用户API。参见cubeb-api子目录。依赖cubeb-core
cubeb-core crates.io docs.rs cubeb rust和C绑定的通用类型和定义。不建议直接使用。依赖cubeb-sys
cubeb-sys crates.io docs.rs 对cubeb C++库的本机绑定。需要pkg-configcmake
cubeb-backend crates.io docs.rs 绑定到libcubeb内部结构,以方便在Rust中实现cubeb后端。依赖cubeb-core

依赖