Choose a binding
Start from the language the program already runs, then pick the image interface. The four interfaces share libvips operations, but installation, defaults, resource release, and the exposed subset of operations differ. This page routes the reader; it does not present the APIs as interchangeable.
Start from the language you already run
Section titled “Start from the language you already run”| You already have | Enter here | Continue with |
|---|---|---|
| A Go service that can carry CGO and a system library | govips | govips API model |
| A Node.js service that wants a chained pipeline | sharp | 15-minute quickstart |
| Python automation, research, or a service | pyvips | 15-minute quickstart |
| A need to confirm one operation or a minimal reproduction | vips CLI | Install and verify |
The CLI is the right place to shrink one operation into a repeatable command. It is not a second production runtime, and it is not a fifth language binding.
What each interface owns
Section titled “What each interface owns”- govips puts libvips inside a Go process. The caller owns
Startup,Shutdown, andClosefor everyImageRef. Streaming reads, cancellation, and the reference count live on this interface. - sharp turns the pipeline into a Node.js chain. Prebuilt packages ship their own libvips, so that library version can differ from the system copy.
- pyvips maps operations to Python methods and usually links the system libvips. Sharing a language with the rest of a Python toolchain does not give it govips’ object lifetime.
- vips CLI exposes operation names and arguments directly. When the question is whether the operation itself works, start here and remove the language wrapper from the diagnosis.
After you choose
Section titled “After you choose”- Use installation and environment checks to record the binding version and the libvips it actually loads.
- Run the 15-minute quickstart on the same input thumbnail.
- If you chose govips, read the govips API model before treating handwritten wrappers and generated operations as the same layer.