Skip to content

What is the libvips ecosystem?

Copy page

libvips is an image-processing library. The vips command invokes operations directly, while govips, sharp, and pyvips expose related capabilities to Go, Node.js, and Python. They share many underlying concepts, but their APIs, defaults, resource management, and error models are not identical.

Layer Responsibility Typical entry points
libvips Loaders, operations, caching, and savers C API, vips
Language binding Maps capabilities into language conventions govips, sharp, pyvips
Application pipeline Combines input, transforms, output, and observability Services, queues, batch jobs

A central libvips idea is demand-driven evaluation: a pipeline can describe operations first and compute the needed regions when output pixels are requested. This can reduce intermediate-image pressure, but it does not make every input, saver, or binding truly streaming.

  • Start with govips for an existing Go service that can manage native dependencies.
  • Start with sharp for a Node.js service that benefits from a chainable pipeline.
  • Start with pyvips for Python automation or scientific workflows.
  • Start with the vips CLI when investigating an operation or preparing a minimal reproduction.

Complete installation and environment checks, then continue to reading, writing, and conversion.