GStreamer 将用 Rust 编写的插件与二进制版本一起提供


多媒体框架 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 大小。

我们需要找到一种方法来修剪插件中不需要的代码,然后才能发布


相关文章

2022-09-21

x 内核 Cloudflare 放弃 Nginx,使用内部 Rust 编写的 Pingora GStreamer 准备将 Rust 编写的插件作为其官方二进制版本的一部分发布 Rust 成立专门的安全团队 Asahi Linux 计划使用 Rust 编写 Apple 芯片的 GPU 驱动程序 GCC Rust 得到 GCC 批准

2022-06-20

写,使用 Tauri 开发的应用程序的后端是一个基于 Rust 的二进制文件,带有一个前端可以与之交互的 API,通过 JS Api 调用后台接口。 可以看到,Tauri 对标的正是 Electron。与 Electron 相比,Tauri 更加轻量、性能更好。 Tauri v.s Electr

2022-09-21

编程语言一起运行,因此开发团队希望利用通过这些语言编写的所有包。 以前使用 Gleam 构建工具的项目可能依赖于用 Gleam 或 Erlang 编写的包。从这个版本开始,还支持用 Elixir 编写的项目,让 Gleam 程序员可以访问几乎

2022-09-06

Lapce 是一个用 Rust 编写的快速且功能强大的代码编辑器。Lapce 0.2.0 现已发布,具体更新内容如下: Features/Changes #776:实现了 error lens #780 : 为 packaging 添加 Fedora 规范 #787 : 将 LSP stderr output 添加到日志 #809&n

2022-07-02

信息。 Bare metal x86_64 targ 现在为x86_64构建无操作系统的二进制文件更加容易,例如在编写内核时。x86_64-unknown-nonetarget 已提升到 Tier 2,可以使用 rustup 安装。 rustup target add x86_64-unknown-none rustc --target x86_64-unknown-none my_no_std_p

2021-12-20

Omgubuntu 消息指出,Ubuntu 22.04 LTS 整体将采用橙色色调。虽然该举措还没有最终确定,相关代码也还没有在 Ubuntu 22.04 日常构建中出现;但已经有很多人注意到了这项可能的变化。 此前,Ubuntu 基于社区的设计团队被指示从 Yaru

2022-09-17

部分;但现在,他们宣布已将 Nginx 替换为其内部由 Rust 编写的 Pingora 软件,“我们已经建立了一个更快、更高效、更通用的内部代理,作为我们当前和未来产品的平台”。 根据介绍,该软件每天可处理超过一万亿个请求,并可

2022-08-20

数据库的方方面面——类型系统、查询语言、客户端库、二进制协议,以及使用 EdgeDB 的开发体验。具体改动清单可参考 v2.0 更新日志,包括了新功能、问题修复清单,以及一份将已有项目迁移到 EdgeDB 2.0 的指南。 EdgeDB 管理面

2022-09-15

人。Hindborg 称,虽然目前 Linux 内核已经拥有出色的由 C 编写的 NVMe 驱动程序,不需要替换;但鉴于 NVMe 驱动程序的广泛使用度及其重要性,使用 Rust 编写的 NVMe 驱动程序也是一个非常有趣的尝试。 Hindborg 展示的基准测试结果表

2022-08-07

Rbatis 是一个用 Rust 编写的高性能、安全、动态 SQL(编译时)ORM 框架,受 Mybatis 和 MybatisPlus 的启发。它提供高性能,基于 Future,带有 async_std/tokio,单线程基准测试可以轻松达到 200,000 QPS。 目前 Rbatis 4.0.0 发布了,带来如下变

2022-02-23

3 月发布),Clutter(及其相关库 Cogl / Clutter-GTK / Clutter-GStreamer)将从 GNOME SDK 运行时中被彻底删除,相关的源代码也会被转移到 Gitlab 归档中。 届时,开发者将无法提交新问题或新的合并请求,也不会再发布新的版本。如果开

2022-09-24

拥抱现代JavaScript。为了保持向后兼容,Leaflet完全是用ES5编写的,这是传统浏览器所支持的JavaScript版本。因此,我们无法利用许多伟大的JavaScript功能(例如,标准化的类,而不得不依赖我们自己的实现)。通过采用更现代的ECMA

2022-08-23

GitUI 是 Rust 编写的 Git 终端,主打特性是速度快和极简风格的 UI。 新版本主要变化 支持堆叠弹出框 (popup stacking) 支持 Android 模拟器 Termux 新增 堆叠弹出框 (#846) 文件历史记录日志 [@cruessler] (#381) 支持 Android 模

2022-02-25

图是运行过程中 CPU 和响应时间的峰值,左边为 Go 实现的版本,右边为 Rust 实现的版本。 Go 开发团队 leader Russ Cox (rsc) 认为 AWS 在这里的比较对 Go 存在严重的误导。他认为,AWS 的文章将两者进行对比时,将 Go 版本的数据