On this page
Overview
jSquash packages Squoosh-derived image codecs as WebAssembly modules for browsers and Web Workers. It provides format-specific packages for AVIF, JPEG, JPEG XL, PNG, QOI, WebP, resizing, and related image-processing tasks.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Install only the image codecs a workflow needs
AVIF, JPEG, JPEG XL, PNG, QOI, WebP, and resize functionality are split into separate packages so applications can choose the codecs required for a conversion pipeline.
Sources: [2]
Run WASM codecs in browsers, workers, and strict edge runtimes
The packages target web and Web Worker environments and avoid dynamic code execution, which allows use in stricter runtimes such as Cloudflare Workers.
Sources: [2]
Best fit
Fits client-side and edge image conversion or compression
It can handle workflows such as pre-upload compression, JPEG-to-WebP conversion, or browser-based image editing without moving every image operation to a conventional server.
Sources: [2]
Before adoption
Node.js support is limited and not the primary target
The README describes Node.js support as experimental and provided for convenience, and points Node-centric users toward other alternatives.
Sources: [2]
Plan for ESM and WASM bundler behavior
All packages are ESM. CommonJS-oriented builds may need transpilation, while Vite and Nuxt can require documented exclusions or workarounds for WASM loading.
Sources: [2]
Official sources
- [1]jamsinclair/jSquash repository(2026-09-30)
- [2]jSquash README(2026-09-30)
- [3]jSquash Apache-2.0 license(2026-09-30)
Supplemental curator note
Its main value is running image conversion in browsers or edge runtimes without a conventional image server. Node.js is secondary, and bundler handling of WASM should be validated early.
Try it in 3 steps
- 1
Import JPEG and WebP codecs
Use the browser CDN imports shown in the README to prepare the source and target codecs.
import { decode } from "https://esm.sh/@jsquash/jpeg"; import { encode } from "https://esm.sh/@jsquash/webp"; - 2
Fetch and decode the JPEG
Load the image as an ArrayBuffer and decode it into the image representation expected by jSquash.
const response = await fetch(imageUrl); const imageData = await decode(await response.arrayBuffer()); - 3
Encode the image as WebP
Convert the decoded image to WebP and verify WASM loading in the target browser and bundler before production use.
const webpBuffer = await encode(imageData);
Growth
Growth trends · Last 30 days
732 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 12
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- image
- image-codec
- image-codecs
- image-processing
- wasm
- web-assembly
- webassembly
- avif
- image-decoder
- image-encoder
- jpegxl
- png
- Stars
- 732
- Forks
- 38
- Watchers
- 4
- Open issues
- 15
- Contributors
- 5
- Owner type
- User
- Primary language
- TypeScript
- License
- Apache-2.0
- Repository last updated
- Jan 5, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Storybook91,174 Stars
1 shared tag(s) · 1 shared category(s) · Same language
capture UI states once and reuse them across docs, interaction tests, and agent tooling
TypeScript - Mermaid90,482 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Generate flowcharts, sequences, classes, ER diagrams, Gantt charts, and more from text syntax
TypeScript - Vite83,069 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Combine a native-ESM dev server and HMR with Rolldown-powered production builds
TypeScript - Orca81,614 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Run multiple coding agents in parallel Git worktrees with terminals, editor, browser, and review in one desktop, mobile, and remote workspace
TypeScript - Hoppscotch80,553 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Span REST, GraphQL, realtime requests, and collection tests across web, desktop, CLI, and self-hosted API workflows
TypeScript - Cline69,574 Stars
1 shared tag(s) · 1 shared category(s) · Same language
an open-source coding agent sharing one core across IDEs, CLI, desktop, and SDK
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.