系统极客一直在努力
专注操作系统及软件使用技能

Brotli 1.2 发布:Google 开源压缩库迎来性能 + 安全双升级

Nginx

在数字世界中,数据压缩技术是提升网速与存储效率的基石。作为该领域的佼佼者,Google 的开源压缩库——Brotli 1.2 正式发布。这是继 2023 年 8 月 1.1 版本之后的一次里程碑式更新,为这款广泛应用于 Linux 系统、Web 服务器和浏览器中的工具带来了现代化升级。

Brotli 1.2 核心亮点

安全加固:防范「解压缩炸弹」风险

新版本重点关注了潜在的攻击向量,特别是针对解压缩过程的恶意输入。为有效防范「解压缩炸弹」——即通过恶意构造的压缩数据,在解压后产生超乎预期的庞大输出,从而耗尽系统资源。Brotli 1.2 在 Python 绑定中,引入了2 个关键特性:

  • 新增了Decompressor::can_accept_more_data方法,并为Decompressor::process函数增加了(可选的)output_buffer_limit参数。
  • 这些改进能帮助开发者更好地控制解压行为,避免处理不受信任的输入而导致系统崩溃。

性能飞跃:更快启动,更高效率

在性能方面,Brotli 1.2 同样取得了显著进展:

  • 编码器和解码器均引入了静态初始化机制。这个看似细微的改动,却带来了双重收益:不仅减小了最终生成的二进制文件体积,还显著加快了程序的启动速度。
  • 更重要的是,核心编码过程也变得更加高效。这意味着,Brotli 在 Web 服务和系统级压缩任务中,能够以更低的资源消耗,带来更高的压缩效率。

生态完善与代码现代化

除了核心的安全 + 性能提升,Brotli 1.2 在开发者生态、工具链和代码质量方面也进行了一翻打磨:

  • 拓展 JVM 生态:新增了一个基于 Kotlin 的解码器,为 Java、Kotlin 等 JVM 生态下的应用提供了更现代、更原生的集成选择。
  • 命令行工具增强:增加了一个名为brcat的命令行别名,方便用户更便捷地解码连续拼接的 Brotli 数据流。
  • 改善 C 语言集成:通过 CGo 增加了对「原始」字典的支持,提升了与底层 C 语言应用的集成效率。
  • 代码清理与构建优化:在 Java 绑定中,移除了已废弃的finalize()用法,并修正了 Java 压缩器中的一个编码长度问题;同时,构建系统也得到精简,引入了 pkg-config 链接支持,并对 Python 扩展进行了现代化改造,使其能够支持多阶段模块初始化。
  • 文档与维护:更新了 Bazel 构建模块,并首次加入了 man pages,极大提升了项目的可维护性与文档完备度。
赞(0)
分享到

评论 抢沙发