Sharp is a high performance Node-API module for image processing in JavaScript runtimes like Node.js, Deno, and Bun. It is used to quickly resize and convert large images (JPEG, PNG, WebP, AVIF, TIFF, and more) to smaller, web-friendly formats, leveraging the libvips library and supporting operations like rotation, cropping, compositing, and gamma correction.
Project status
- Actively maintained: GitHub upstream pushes and frequent versioned updates in late June through July 2026 (last upstream push 2026-07-01), with multiple rc builds landing before a final version.
- Apparent cadence: Short interval clustering, roughly every few days to about weekly (for example, 0.35.2 on 2026-06-19, multiple 0.35.3 release candidates from 2026-06-27 to 2026-06-30, then 0.35.3 on 2026-07-01).
AI summary generated
Recent updates
v0.35.3
The v0.35.3 release notes describe multiple runtime hardening changes (tighter numeric and geometry verification to avoid overflow), improved bundler support for locating the libvips binary, and an API metadata addition (output.info.hasAlpha), along with a TypeScript typing refinement. However, the provided code diff shows only packaging and release-version metadata updates, specifically moving all @img/sharp-* prebuilt packages from 0.35.3-rc.2 to 0.35.3, with no actual implementation diffs included.
Featuresv0.35.3-rc.2
v0.35.3-rc.2 focuses on hardening input validation to prevent signed overflows and other unsafe numeric scenarios, and it also improves output metadata and TypeScript typing. The release notes additionally mention bundler support for locating libvips, concurrency tweaks, and several arithmetic-bounds fixes around image operations. The code diff provided also shows packaging changes to use newer libvips prebuilds and updates to the documented TypeScript/ArrayBuffer behavior of `toBuffer()`.
Featuresv0.35.3-rc.1
v0.35.3-rc.1 focuses on tightening parameter validation to prevent libvips-related overflows and coordinate limit issues across several operations (text, resize extend, CLAHE, trim, extract, raw/create dimensions, etc.). It also adds `info.hasAlpha`, improves Electron-on-Linux messaging, and adjusts default concurrency behavior when `MALLOC_ARENA_MAX` is set.
BreakingFeaturesv0.35.2
sharp v0.35.2 focuses on tightening input validation (GIF options, recomposition matrices, and convolve kernels), improving WebAssembly fallback detection and bundler support, and making TypeScript metadata and ESM exports changes. The included code diff shows at least one concrete behavioral validation change for `convolve` that aligns with the release notes, plus several build/test and dependency packaging updates.
BreakingFeaturesv0.35.2-rc.2
v0.35.2-rc.2 is a release candidate focused on improving TypeScript metadata typing and ESM exports, enhancing WebAssembly fallback detection and bundler behavior, and adding stricter input validation for GIF options. The provided code diff mostly shows workspace version bumps and platform dependency wiring changes rather than the logic changes described in the release notes.
BreakingFeaturesv0.35.2-rc.1
v0.35.2-rc.1 primarily focuses on improved runtime behavior and build/bundler compatibility, plus additional input validation around several image operations. The code diff provided shows concrete changes around dilate/erode width validation (including new hard upper bounds) and adding conditional stub resolution logic in the packaging build script.
BreakingFeaturesv0.35.2-rc.0
This release adds TypeScript typing for a new `mediaType` field on the `metadata()` response, and improves validation and detection logic. It also updates the WebAssembly fallback behavior and tightens runtime checks for GIF `effort` and `recomb` matrix inputs.
Featuresv0.35.1
v0.35.1 is released, with release notes focused on packaging completeness for TypeScript type definitions (ESM and CJS) and WebAssembly wrapper publishing. The provided code diff mainly shows promotion from the v0.35.1-rc.1 release-candidate version to the final v0.35.1 across the npm workspaces and their dependency wiring.
v0.35.1-rc.1
v0.35.1-rc.1 focuses on shipping correct TypeScript declaration files for different module systems, and on ensuring the WebAssembly wrapper file is published. The release also updates package versions across the platform-specific sharp binaries. In the code, there are additional changes to published type export style and documentation around AVIF/Windows ARM64 requirements that are not mentioned in the release notes.
Featuresv0.35.1-rc.0
v0.35.1-rc.0 is primarily about making sure published artifacts include TypeScript declaration files and the WebAssembly wrapper. The implementation does this by changing how type declarations are produced and referenced from package.json exports, and by adding publish-focused CI validation steps.
v0.35.0
This release (v0.35.0) contains numerous breaking API and behavior changes and bumps the bundled libvips version, along with several new image processing options and metadata enhancements. The release notes also cover Node.js support changes (Node.js >= 20.9.0) and multiple deprecations/removals for older constructor properties and output formats. The code diff provided, however, mainly shows packaging/version and CI/test updates rather than the core functional changes described in the release notes.
BreakingFeaturesv0.35.0-rc.8
Release v0.35.0-rc.8 is accompanied by extensive release notes claiming multiple breaking API and behavior changes. However, the provided code diff (18 files, only package.json and version wiring) shows only version number updates across the workspace and optional prebuilt dependency references.
BreakingFeaturesv0.35.0-rc.7
v0.35.0-rc.7 is a release candidate that focuses heavily on breaking changes and upstream dependency updates. However, the provided code diff shows additional behavioral changes around input validation and HEIF bitdepth/prebuilt-binary restrictions that are not explicitly mentioned in the release notes.
BreakingFeaturesv0.35.0-rc.6
sharp v0.35.0-rc.6 updates the library and published binaries, including dropping Node.js 18 support and upgrading libvips to 8.18.3. It introduces new safety controls for inputs (limitInputChannels) and extends HDR/image output options, including changes to AVIF/HEIF tune handling and additional metadata/output capabilities.
BreakingFeaturesv0.35.0-rc.5
v0.35.0-rc.5 is primarily a breaking release that raises the minimum Node.js version to 20.9.0, removes legacy/experimental pathways (like the `install` script, deprecated options, and wasm experimental status), and tunes image processing behavior for formats like AVIF/HEIF. It also adds several new image-processing options (for quality metrics, HDR gain maps, trimming density, and more) plus ESM support and prebuilt binary changes.
BreakingFeaturesv0.35.0-rc.4
Release v0.35.0-rc.4 is presented as a major breaking release with extensive API and behavior changes. However, the provided code diff for this tag only shows packaging and CI workflow adjustments plus workspace version pin updates, with no visible implementation changes corresponding to the listed API breakages.
BreakingFeaturesv0.35.0-rc.3
v0.35.0-rc.3 focuses on breaking changes for runtime requirements and API cleanup, plus several new image processing options and metadata enhancements. A major internal change is also present in the code diff, migrating key modules and entrypoints from CommonJS (.js) to ESM (.mjs), alongside updated loading logic for the native bindings and prebuilt binaries.
BreakingFeaturesv0.35.0-rc.2
Release v0.35.0-rc.2 primarily updates package version references across the sharp npm workspace and its platform-specific prebuilt artifacts. The provided code diff, however, does not include the core library or API implementation changes that the release notes describe.
BreakingFeaturesv0.35.0-rc.1
sharp v0.35.0-rc.1 drops Node.js 18 support, introduces multiple documented API breaking changes, and upgrades libvips to 8.18.2. It adds new processing APIs like `withDensity`, `keepGainMap`, and HEIF/AVIF `tune`, and expands packaging to include WebAssembly-related prebuilt binaries (including FreeBSD).
BreakingFeaturesv0.35.0-rc.0
This release (v0.35.0-rc.0) updates Sharp to require Node.js >= 20.9.0 and drops multiple deprecated APIs, including constructor/input options and parts of the sharpen API. It also adds new capabilities such as AVIF/HEIF quality metric tuning, HDR gain map processing, a new toUint8Array output method, and additional image operation options.
BreakingFeatures