bzip2 的 crate 包已完全从 C 迁移到 Rust


bzip2 0.6.0  已发布,团队称新版本默认采用他们实现的 bzip2 算法 libbz2-rs-sys,bzip2 的 crate 包也已完全从 C 迁移到 Rust,bzip2 库现在编译更快、跨编译更简单。

尽管现在 bzip2 的使用不如以前广泛,但许多协议和库仍需支持它以满足规范要求。团队借鉴了在 zlib-rs 项目中的经验,对 bzip2 的实现进行了更新。

在性能方面,Rust 实现通常优于 C 实现,尽管在某些情况下两者性能相当。压缩性能测试显示,Rust 实现的压缩速度比 C 实现快 14% 左右。在解压缩方面,Rust 实现也带来了显著的速度提升,测试结果显示平均速度快了 5%-10%。

移除 C 语言依赖后,Rust 项目在交叉编译时的复杂性大大降低,编译为 WebAssembly 等平台的问题也得到了解决。

相关阅读:sudo-rs 发布首个稳定版 0.2.0:内存安全、用 Rust 重写的 sudo


相關推薦

2022-09-23

Rust 1.64 还提供了 alloc::ffi::CString,用于处理只使用 alloc crate 的 C 字符串。 rust-analyzer 现在可以通过 rustup 获得 rust-analyzer 现在作为 Rust 工具集的一部分被包含在其中。这使得下载和访问 rust-analyzer 更加容易,并使其在更多平台

2022-09-07

发布,Arti 已经达到了 1.0.0 的里程碑。 重大变化 arti crate 中的大部分 API,现在都隐藏在 experimental-api 功能的后面,以标明它们是不稳定的和不支持的。 default_config_file 函数已被替换为 default_config_files,因为现在有一个默认

2023-11-24

协议,包括WebSockets。 全面的表单功能支持:Rocket v0.5完全改进了表单支持,支持多部分上传、任意嵌套的集合、即时验证等。Rocket的新表单协议允许应用程序表达任何结构,任意嵌套和集合,无需任何自定义代码。 除了

2022-08-23

高效的子查询支持,所有的子查询在进入 runtime 之前已经完全被 decorrelation: select vip_info.Client_ID, vip_info.Region from vip_info right join purchase_records on vip_info.Client_ID = purchase_records.Client_ID; New Parser: 最好用的 Parser! 在重构

2023-03-11

稀疏协议 Cargo 的“稀疏”注册协议已经稳定,可以读取 crates 的索引,以及用于在 crates.io 注册中心发布的的基础设施。 之前的 git 协议(现在仍然是默认协议)是克隆一个存储库,该存储库会索引注册表中所有可用的 crates ,

2023-05-27

谷歌宣布并发布了一些汇总的 Rust crates 内部审计结果,以继续履行对开源 Rust 社区的承诺。一直以来,谷歌都在积极拥抱 Rust,在许多开源项目中进行了应用。以及持续投资 Rust 社区:包括帮助建立了 Rust 基金会,员工积极贡献

2025-05-15

a EE 已从 Java EE 迁移到 Jakarta EE,因此所有已实施 API 的主包已从javax.* 变为 jakarta.*。这几乎肯定需要修改代码才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。为此,官方提供了一个迁移工具。 此版本中

2023-06-03

t 的新版本 —— 1.70.0,新版本中值得关注的变化包括: Crates.io 默认启用稀疏索引 Cargo 的 "sparse" 协议现在默认启用,用于从 crates.io 读取索引。这个功能之前已经在 Rust 1.68.0 中稳定下来,但仍然需要配置才能在 crates.io 中使用

2023-05-09

,并包括针对此功能的自动化 QA 测试。 它还支持 Rust crate 的校验和,并使它们对于配方中的每个 crate 都是强制性的。 新的cargo-update-recipe-crates类可以更新SRC_URI包装箱列表Cargo.lock 为裸机目标启用构建 Rust 您现在还

2022-12-13

的 pr_*! 级别和后续的 pr_cont!,以及一个新样本。 `alloc` crate::RawVec 和 Vec 的新构造函数 try_with_capacity() 和 try_with_capacity_in()。 程序宏:新宏 #[vtable] 和 concat_idents!,以及为 module! 用户提供更好的人体工程学。 断言:新宏 stat

2022-09-20

保守的态度,除了“stable forever”和“仅在 nightly 可用且完全可能发生变化”之外,API 没有其他可能的状态。 相关地,标准库是一个 all or nothing deal(技术上也有 liballoc)。除了有一个更细化的版本管理解决方案外,更细化地

2023-08-02

员的安全工作流程并更深入地了解漏洞,包括 Painter。 crates.io 技术债务减少和 API token 改进 Rust 团队今年的目标是增强对 crate 安全性的洞察,并强调与之相关的信息。他们当下的重点是软件供应链安全,并且正在与 Rust 基

2022-11-14

proc 宏 让error.rs 更完整,尽管稍后会出现更多的 pub(crate) 功能(以避免在系列之间留下死代码)。 此外,此系列补丁使用了一些临时的 #[allow(dead_code)] 属性,以便在组织补丁时有更多的自由度,同时保持所有补丁都可

2023-04-27

计脱不了干系。Rust 标准库可以被看作是几个相互依赖的 crates,其中两个主要组成部分是 core 和 alloc。就目前而言,gccrs 还不能编译其目标版本的 core crate;虽然 Philip 正在推进该方面的工作,但这一落后还是“严重影响了我们