跳转到内容

如何选择 binding

复制本页

先看程序已经跑在哪种语言里,再决定图像入口。四个入口共享 libvips 的操作模型,但安装方式、默认值、资源释放和暴露出来的操作子集都不相同。本页只负责分流,不把它们写成可互换的 API。

你已经有 从这里进入 接着读
Go 服务,并能处理 CGO 与系统库 govips govips API 模型
Node.js 服务,希望用链式 Pipeline sharp 15 分钟 Quickstart
Python 自动化、研究或服务 pyvips 15 分钟 Quickstart
要确认某个操作,或做最小复现 vips CLI 安装与环境检查

CLI 适合把一个操作缩成可重复的命令。它不是另外一种生产服务运行时,也不该被当成第五个语言 binding。

  • govips 把 libvips 放进 Go 进程。调用方要自己完成 Startup、Shutdown 和每个 ImageRef 的 Close。流式读取、取消和引用计数都集中在这个入口。
  • sharp 把 Pipeline 收成 Node.js 链式调用。预构建包携带自己的 libvips,因此它的库版本可以和系统里的 libvips 不同。
  • pyvips 把操作映射成 Python 方法,通常链接系统 libvips。它适合和现有 Python 工具放在一起,不因此获得和 govips 相同的对象生命周期。
  • vips CLI 直接暴露操作名和参数。排查 “这个操作本身是否可用” 时,先用它排除语言包装的影响。
  1. 用安装与环境检查确认 binding 版本和它实际加载的 libvips 版本。
  2. 用15 分钟 Quickstart跑通同一张输入上的缩略图。
  3. 如果选择 govips,再读govips API 模型,区分手写包装和生成操作。