10 个版本

新增 0.3.3 2024 年 8 月 22 日
0.3.2 2024 年 2 月 28 日
0.3.0 2024 年 1 月 11 日
0.2.1-alpha2023 年 9 月 22 日
0.1.1 2023 年 1 月 12 日

176视频 中排名

Download history 78/week @ 2024-05-02 62/week @ 2024-05-09 82/week @ 2024-05-16 59/week @ 2024-05-23 65/week @ 2024-05-30 84/week @ 2024-06-06 59/week @ 2024-06-13 88/week @ 2024-06-20 22/week @ 2024-06-27 42/week @ 2024-07-04 37/week @ 2024-07-11 28/week @ 2024-07-18 79/week @ 2024-07-25 96/week @ 2024-08-01 115/week @ 2024-08-08 84/week @ 2024-08-15

每月下载量 377
4 个 Crates 中使用 (2 个直接使用)

Apache-2.0

245KB
5.5K SLoC

C++ 2.5K SLoC // 0.1% comments Rust 2K SLoC // 0.1% comments Shell 380 SLoC // 0.2% comments Batch 68 SLoC Objective-C++ 39 SLoC // 0.4% comments

webrtc-sys

本 Crates 为 Rust 提供了 WebRTC API 的包装,我们使用 cxx.rs 来简化我们的绑定。

包装器

我们的大部分包装器使用与 Rust 兼容的 cxx.rs 类型。由于我们的大部分包装器是无状态的,因此我们允许特定的包装器实例指向相同的底层 webrtc 指针。 (例如:多个 livekit::MediaStreamTrack 指向相同的 webrtc::MediaStreamTrackInterface)。

线程安全的方法使用 const 关键字,这样我们可以轻松地从 Rust 端调用它们,而不用担心对象的可变性。 (这与 Cell/UnsafeCell 类似,但是在 C++ 端实现的:内部可变性)。

代码

我们还将此 C++ 代码用于在 Rust 端提供其他所需的功能/功能(例如:对 libyuv 的微绑定)。

依赖项

~0.6–3.5MB
~62K SLoC