多媒体框架 GStreamer 宣布将用 Rust 编写的插件作为其官方二进制版本的一部分发布。“经过整整一个月非常恼人的构建系统工作,我们终于可以将用 rustlang 编写的 gstreamer 插件与我们的官方二进制版本一起发布了。”
科技网站 Phoronix 指出,鉴于 Rust 的内存安全性,用该语言编写的媒体编码器/解码器一直是一个很有意义的领域,GStreamer 的开发人员也一直对这种现代编程语言的使用很感兴趣。目前,相关的 GStreamer 合并请求已落地,以支持为 native builds 构建 Cargo-C recipes;这是将 Rust 编写的插件作为项目的官方二进制版本的一部分发布的一个必要步骤。
此功能现下仅在 Linux、macOS 和 MSVC 上默认启用,GStreamer 可能会在即将发布的 1.22 版本中提供。iOS 和 Android 中的支持则预计出现在之后的 1.24 版本中。更多详情及进展可查看其 Rust support tracker issue 页面。
GStreamer 开发人员 Nirbheek Chauhan 补充称,
这真的很令人兴奋,因为现在人们可以轻松访问出色的插件,例如基于 reqwest 的 HTTP elements、WebRTC WHIP sink、dav1d 解码器、rav1e 编码器、RaptorQ FEC 实施、AWS 插件、fallbackswitch 插件(轻松在不同的 sources 之间切换)等等!
值得注意的是,这只是启用了 shared plugins(不是 static plugins)。Rust 生成 C static archives 的方式导致它们有 100 多 MB 大小。
我们需要找到一种方法来修剪插件中不需要的代码,然后才能发布