sharp 0.35.5 tightens array and input bounds
This patch bounds linear and GIF delay arrays, improves WebAssembly fallback errors, and upgrades the bundled libvips to a release with additional input validation.
This timeline places libvips and three widely used language bindings on one axis. It helps identify where a capability first appeared, when it reached a binding, and which upgrades may change compatibility or deployment requirements.
Every entry is traceable to an official release, changelog, or technical article. This is a historical record rather than the version set used to test this handbook; see the version compatibility matrix for the current baseline.
Patch releases appear only when they materially affect security, input validation, compatibility, defaults, or user-facing capability. When a release and an official article describe the same change, they are merged into one event with both original links preserved.
61 events
This patch bounds linear and GIF delay arrays, improves WebAssembly fallback errors, and upgrades the bundled libvips to a release with additional input validation.
This patch bounds LUT size, strengthens TIFF, PDFium, and JPEG 2000 validation, and marks JPEG 2000 save as untrusted, making it especially relevant to services that accept external input.
New LoadImageFromReader, SaveToWriter, and TranscodeStream APIs connect Go io.Reader/io.Writer values to libvips and distinguish sequential paths from transforms that require materialisation.
Version 3.2 covers libvips operations with generated stubs, types common hand-written APIs, and adds Image.pil plus concurrency getters and setters.
Version 0.35 requires Node.js 20.9+, adds HDR JPEG gain maps, ESM, WebP exact and AVIF/HEIF tuning, and removes the experimental label from WebAssembly.
This release adds OpenImageRefs and AssertNoLeaks for finding unclosed ImageRef values and splits the large ImageRef implementation into focused files.
vipsgen starts generating type-safe operation wrappers from GObject introspection, accompanied by helpers for transparent canvases and greyscale images.
Version 8.18 adds UltraHDR gain maps, camera RAW decoding, Oklab/Oklch colour spaces, exact WebP save, and new controls for PDF, JPEG XL, and HEIF.
Version 3.1 updates documentation for libvips 8.18, adds get_gainmap, and fixes GLib DLL naming under Conan.
This release adds Magic Kernel and matrixmultiply, expands SVG, HEIF, JPEG XL, and TIFF support, and improves operation-cache reliability and shrink performance.
The new major version requires Python 3.7+, moves to pyproject.toml, adds a binary extra and shutdown, and fixes a write_to_buffer leak.
Version 0.34 supports arrays of inputs for joining or animation and adds autoOrient, erode/dilate, WebP smartDeblock, RGBE, and higher-bit-depth wide-gamut HEIF output.
This release adds support for the JPEG XL ISOBMFF container format and updates the Go and image dependency baseline.
Version 8.16 introduces Signed Distance Field operations, expands JPEG XL animation and metadata support, adds target-size and multi-pass WebP controls, and provides raw target output.
Version 2.15 corrects ICC profile selection during WebP export and includes build and API maintenance updates.
This release adds JPEG XL, animated-image crop, Recomb and more histogram operations, and exposes WebP min_size, kmin, and kmax controls.
Version 0.33 requires newer Node.js releases, installs platform packages from npm, experiments with WebAssembly runtimes, and adds finer EXIF, ICC, and metadata controls.
Version 8.15 expands SIMD paths with Highway, replaces the broad strip option with selective keep controls, parallelises parts of TIFF and Deep Zoom output, and adds unified bitdepth metadata.
Version 2.13 mainly fixes golden-image paths when the project is consumed through go get, making this a release focused on test and packaging reliability.
RemoveMetadata can preserve caller-selected fields, allowing more granular metadata cleanup during export.
Version 0.32 defaults to sequential reads where possible, directly maintains TypeScript definitions, and adds text wrapping, ArrayBuffer input, ICC ignore, and attention-crop coordinates.
Version 8.14 removes Autotools, adopts a dynamically sized and recycled thread pool, adds N-colour ICC support, and improves TIFF, GIF, FITS, and animated WebP handling.
Version 0.31 exposes vips_text, improves GIF/WebP animation, trim, and normalise, and clarifies ordering among flip, flop, rotate, resize, and extend.
Version 8.13 can block insufficiently fuzzed loaders at runtime, rewrites GIF save, improves resize edge handling, and lets TIFF and Deep Zoom write to targets.
This patch adds block_untrusted_set and operation_block_set and provides seek and end handlers for custom targets.
Version 2.2 adds extended indexing, Image.fromarray, Image.numpy, tolist, pathlib.Path support, and cached parameter-spec lookups.
This release focuses on animated GIF page handling and correct DPI parameters for SVG and PDF input.
Version 0.30 adds GIF output to prebuilt binaries, standardises WebP/HEIF effort controls, improves animated resize and extract, and adds IIIF v3 and palette-PNG effort.
Version 2.10 introduces animated GIF support, a pixelation filter, and image replication APIs for animation and repeated-texture pipelines.
New APIs create thumbnails directly from files or buffers and add GetPoint, Embed, and TransformICC.
Version 2.8 adds JPEG 2000, PNG export controls, Join/ArrayJoin, and broader load parameters; 2.8.1 then corrects ICC transforms above 8-bit.
Version 8.12 saves GIF through cgif and libimagequant and expands minimise signalling to reduce memory and file-descriptor use in operations such as arrayjoin.
Version 0.29 adds pipelineColourspace, raw-pixel bit-depth controls, more HEIF/AVIF metadata, and multiple platform binaries in one installation tree.
Version 8.11 introduces experimental JPEG XL, full JPEG 2000 load/save, colour text rendering, loadable modules, and a shared worker-thread pool.
This release adds AVIF but temporarily removes GIF/WebP animation after regressions, illustrating the version boundary between binding features and format stability.
Version 2.6 adds FindTrim, Insert, and Rank, restores explicit Close for high-throughput lifecycle control, and introduces GIF/WebP animation paths.
Version 0.28 bundles mozjpeg and libimagequant, adds a JPEG mozjpeg option, and reduces concurrency with the default glibc allocator to limit fragmentation.
Version 2.5 adds format-specific export parameters together with Identity, Maplut, Cast, and Average operations.
Version 2.4 exposes similarity-based rotation and scaling, conversion to Go image.Image, and attention-based smart crop.
Version 2.3 adds divide, mapim, xyz, and more HEIF support; 2.3.1 makes temporary-file storage work on Windows and cleans it during Shutdown.
Version 0.27 includes AVIF in prebuilt binaries, removes the experimental label from HEIF output, and allows negative top and left composite offsets.
Version 2.2 adds Thumbnail for direct thumbnail generation and CompositeMulti for combining multiple images in one operation.
A new logging layer controls verbosity and destination while consolidating GLib, libvips, and govips messages into one channel.
Version 2 cleans up the public API, merges new capabilities from a fork, and fixes multiple issues; 2.0.1 then adds an option to strip metadata during export.
Version 0.26 adds animated GIF/WebP output, ImageMagick 7 loaders, multi-page input, and custom ICC profiles, while changing JPEG and TIFF defaults.
The 8.10 series continues the Source/Target I/O and format work and later becomes the minimum libvips baseline for early govips v2 releases.
Version 0.25 moves the internals to N-API, reducing installation and upgrade friction caused by changes to the Node.js native ABI.
Version 0.24 moves limitInputPixels and sequentialRead into input options, exposes animation delay/loop metadata, and fixes high-bit-depth ICC and rotate ordering issues.
Version 8.9 becomes a compatibility baseline for later binding features and continues the evolution of the newer I/O API, format support, and demand-driven execution paths.
This significant patch brings libvips Source/Target I/O to the Python binding and improves Operation.call, logging, and signal handling.
Version 0.23 introduces experimental HEIF and Worker Threads, adds WebP encoding controls, and uses libvips built-in CMYK/sRGB profiles for colour conversion.
Version 8.8 starts a new stable series with continued thumbnail, loader/saver, and cross-platform build work; later patches focus mostly on compatibility and reliability.
Version 0.22 replaces overlayWith with multi-image, blend-aware composite and adds multi-page input, GIF/PDF page selection, and streamed raw input.
Version 0.21 moves crop, embed, max, and related chain methods into resize options and adds arbitrary rotation, more metadata fields, and default SIMD convolution.
The 8.7 stable series advances operations, formats, and binding interfaces; pyvips updates its generated documentation and tests for this API generation.
This is the earliest standalone version page in the current official changelog; prebuilt sharp binaries materially change installation on common platforms.
Version 8.6 adds support for more FITS layouts and expands operations and Windows packaging; subsequent patches address ABI, TIFF, and cache issues.
Installation first attempts the faster CFFI API mode and falls back to ABI mode when compilation is unavailable, improving startup and test performance.
The earliest surviving descriptive release records a complete Image API rewrite, a new Pipeline API, and a set of memory-leak fixes.
Version 2.0 rewrites the Python binding on top of CFFI, establishing the architectural baseline that continues today.
This is among the earliest verifiable libvips 8.5 entries in the current official GitHub release archive; the series already includes smart crop, CMYK save conversion, and improved corrupt-image handling.
No events match the current filters.