Back to Explore

lovell/sharp

GitHub
5 updates · last 90 days3 watchersOpen source

Last release:

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: The upstream repo has recent activity (last upstream push on 2026-09-28), and npm updates were published in late September 2026 (including multiple release-candidate builds followed by a final build), indicating ongoing development rather than dormancy.
  • Apparent cadence: Updates show a steady rhythm through 2026, with several pushes in June, then more frequent activity in July, and a cluster of RC plus final updates in August and late September. Relative to 2026-10-01, the project is clearly current, with no long multi-month gap evident in the provided history.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v0.35.5

    v0.35.5 ships a set of user-facing fixes and TypeScript improvements, including additional bounds checks, improved error handling for WebAssembly fallback, and improved gain map handling for image transformations. The release notes also include packaging/test maintenance updates for platform correctness.

    Features
  • v0.35.5-rc.1

    Release v0.35.5-rc.1 focuses on tightening validation (upper bounds for `linear` and GIF `delay` arrays), improving WebAssembly fallback error handling, and enhancing gain map behavior for extract operations. It also includes several TypeScript-focused changes and test updates for cross-platform reliability.

    Features
  • v0.35.5-rc.0

    v0.35.5-rc.0 introduces additional input validation for `linear` and animated GIF `delay` arrays, and improves error handling when the WebAssembly fallback path also fails. It also updates the TypeScript surface for JXL to support multi-frame options (such as `loop` and `delay`), and removes a previously exposed but non-existent named export from the TypeScript build output.

    BreakingSecurityFeatures
  • v0.35.4

    v0.35.4 finalizes the previously published release-candidate builds and pins prebuilt libvips binaries to sharp-libvips v1.3.3. The release notes describe several image-processing correctness changes (coordinate limit bounding, palette bit depth rounding, TIFF SubIFD usage, page metadata accuracy, and improved stream handling). In the provided code diff, however, there is no direct implementation change shown for these behaviors, only npm packaging version/dependency pin updates and a unit test expectation update.

  • v0.35.4-rc.0

    v0.35.4-rc.0 upgrades libvips to 8.18.6 and tightens several image operation edge cases. The release also adds stricter validation for resize dimensions and composite offsets, fixes TIFF sub-IFD handling, improves stream-based input timing, and adjusts palette bit depth handling for PNG and GIF.

    Breaking
  • 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.

    Features
  • v0.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()`.

    Features
  • v0.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.

    BreakingFeatures
  • v0.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.

    BreakingFeatures
  • v0.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.

    BreakingFeatures
  • v0.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.

    BreakingFeatures
  • v0.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.

    Features
  • v0.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.

    Features
  • v0.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.

    BreakingFeatures
  • v0.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.

    BreakingFeatures
  • v0.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.

    BreakingFeatures
  • v0.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.

    BreakingFeatures
  • v0.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.

    BreakingFeatures