版本兼容矩阵
本手册用 Go/govips 作为参考实现,并锁定在固定版本。四个常用入口各自捆绑或链接的 libvips 并不相同,因此结果比较不能假定逐字节一致。
本页是当前测试基线的快照;若要按日期查看各项目的重要版本与功能演进,请前往 VIPS 生态时间线。
当前锁定的版本基线
Section titled “当前锁定的版本基线”| 角色 | 组件 | 版本 | 备注 |
|---|---|---|---|
| 参考 | govips | v2.19.0 | 绑定到系统 libvips 8.17.3 |
| 参考 | libvips | 8.17.3 | 系统安装,与 pyvips、CLI 共用 |
| 比较 | sharp | 0.35.5 | 自带捆绑的 libvips 8.18.7 |
| 比较 | pyvips | 3.2.0 | 链接系统 libvips 8.17.3 |
| 比较 | vips CLI | 8.17.3 | 与参考共用系统 libvips |
2026-10-12 在 Fedora Linux 43 上核对的运行时:Node.js 24.14.1、Go 1.27.0、Python 3.14.5。同一天,已执行的缩略图示例给出了上表中的 binding 与 libvips 组合。
为什么 sharp 版本不同
Section titled “为什么 sharp 版本不同”sharp 把编译好的 libvips 一并打包发布。因此 sharp 的 libvips 版本(8.18.7)与系统 libvips(8.17.3)不同,即使对相同输入编写相同意图的代码,sharp 与 govips/pyvips/CLI 的编码结果也可能存在合理差异。比较时不得假定逐字节一致。
pyvips 和 vips CLI 则链接系统 libvips 8.17.3,与参考实现共享同一个库,预期输出高度接近。
- 当前比较核对尺寸、格式、通道和文件大小,不把像素一致当作已经完成的结论。
- 缩略图那次执行里,四份输出都是 640 × 427 的 WebP;govips 36,172 字节,sharp 35,924 字节,pyvips 与 CLI 都是 39,228 字节。
- 这种差异仍标为待像素比较。版本敏感结论必须写明 libvips、binding 和复核日期,不要推广到所有版本。
何时需要升级
Section titled “何时需要升级”- 需要较新 libvips 才有的 op(见故障排查中 install-failures / missing-codec)。
- sharp 自带 libvips 与系统 libvips 的版本差导致行为差异时,应以锁定的参考基线为准。
- 升级任何 binding 或 libvips 后,请更新本矩阵并重新验证相关 Recipe。
- 2026-10-12 在 Fedora Linux 43 上执行的版本命令,以及同一天实际生成的缩略图结果。
- govips v2.19.0 发布记录
- sharp 0.35.5
- pyvips
- libvips
本页是 2026-10-12 的版本快照。升级任何一个组件后都要重新执行并改写本表。