NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2444 most downloaded on npm
Canvas for Node.js with skia backend
Last release 3 days ago
01 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
121 releases · first in 2021
One column per quarter.
chore(deps): update dependency cmake to v4 by @renovate [bot] in #1338
Full Changelog: v1.0.9...v1.0.10
chore(deps): lock file maintenance by @renovate [bot] in #1328
Full Changelog: v1.0.8...v1.0.9
fix: capture call-time snapshot in async encode APIs ( #1313 ) by @Brooooooklyn in #1323
Full Changelog: v1.0.7...v1.0.8
perf: fast getImageData readback with runtime-dispatched SIMD unpremultiply by @Brooooooklyn in #1319
Full Changelog: v1.0.6...v1.0.7
fix: keep skia surface alive during async encode ( #1312 ) by @Brooooooklyn in #1314
Full Changelog: v1.0.5...v1.0.6
chore(deps): lock file maintenance by @renovate [bot] in #1307
Full Changelog: v1.0.4...v1.0.5
chore(deps): update rust to v1.96.1 by @renovate [bot] in #1282
Full Changelog: v1.0.2...v1.0.3
feat: chrome/m149 by @Brooooooklyn in #1281
fix: link aarch64-pc-windows-msvc against static CRT by @Brooooooklyn in #1276
Full Changelog: v1.0.0...v1.0.1
…release version 1.0 at this time. There are no breaking changes; it's safe for everyone to upgrade.
We have achieved ~11m/week downloads, and the API is stable, so we have decided to release version 1.0 at this time. There are no breaking changes; it's safe for everyone to upgrade.
Full Changelog: v0.1.100...v1.0.0
chore(deps): update debian docker tag to bullseye-20260421 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1254
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.99...v0.1.100
chore(deps): update yarn to v4.14.0 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1249
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.98...v0.1.99
chore(deps): update cssparser to 0.37 and cssparser-color to 0.5 by @Copilot in https://github.com/Brooooooklyn/canvas/pull/1230
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.97...v0.1.98
chore(deps): update docker/build-push-action action to v7 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1223
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.96...v0.1.97
chore(deps): update dependency oxlint-tsgolint to ^0.15.0 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1214
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.95...v0.1.96
fix: snapshot pixel data in putImageData for deferred rendering mode by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1213
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.94...v0.1.95
fix: putImageData incorrectly blending pixels due to Mitchell cubic resampler by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1211
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.93...v0.1.94
feat: chrome m146 by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1207
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.92...v0.1.93
feat: add node-canvas compatibility layer (@napi-rs/canvas/node-canvas) by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1203
@napi-rs/canvas/node-canvas) by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1203Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.91...v0.1.92
fix: plug native memory leaks in SVG canvas, bitmap shader, and stream allocations by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/120
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.90...v0.1.91
fix: copy font data in GlobalFonts.register to prevent buffer invalidation by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1194
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.89...v0.1.90
fix: napi feature by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1191
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.88...v0.1.89
fix: should throw TypeError if drawImage param mismatched by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1190
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.87...v0.1.88
fix: make Image class HTML spec compliant for jsdom integration by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1184
ctx.lang property for language-specific text rendering by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1187textRendering property for text rendering hints by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1189Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.86...v0.1.87
chore: update deps by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1178
fillText(maxWidth) x positioning calculation error by @yisibl in https://github.com/Brooooooklyn/canvas/pull/1179Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.85...v0.1.86
See lottie-to-video.ts for example
See lottie-to-video.ts for example
const { LottieAnimation } = require('@napi-rs/canvas')
// Load from file
const animation = LottieAnimation.loadFromFile('animation.json')
// Load from JSON string with resource path for external assets
const animation = LottieAnimation.loadFromData(jsonString, {
resourcePath: '/path/to/assets',
})
https://github.com/user-attachments/assets/e99d61a8-9013-4aaf-98fc-afb520bba9ef
fontVariantCaps by @yisibl in https://github.com/Brooooooklyn/canvas/pull/1161CanvasRenderingContext2D.reset() by @yisibl in https://github.com/Brooooooklyn/canvas/pull/1171#000000 rather than #000 by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1174direction by @yisibl in https://github.com/Brooooooklyn/canvas/pull/1175Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.84...v0.1.85
[#000000](https://github.com/Brooooooklyn/canvas/issues/000000) rather than [#000](https://github.com/Brooooooklyn/canvas/issues/000) (#1174) (c45020a)test: add font-variation-settings fixtures by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1154
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.83...v0.1.84
chore(deps): update yarn to v4.12.0 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1152
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.82...v0.1.83
feat: PDFDocument support by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1137
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.81...v0.1.82
chore(deps): update yarn to v4.10.1 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1127
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.80...v0.1.81
fix: external memory usage adjustment mismatch by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1123
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.79...v0.1.80
chore(deps): update dependency electron to v38 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1114
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.78...v0.1.79
chore(deps): update yarn to v4.9.3 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1104
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.77...v0.1.78
chore(deps): update actions/download-artifact action to v5 by @renovate[bot] in https://github.com/Brooooooklyn/canvas/pull/1095
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.76...v0.1.77
This release includes the fix in https://github.com/napi-rs/napi-rs/pull/2824 It caused the memory leak in Image https://github.com/Brooooooklyn/canva
This release includes the fix in https://github.com/napi-rs/napi-rs/pull/2824 It caused the memory leak in Image https://github.com/Brooooooklyn/canvas/issues/1093
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.75...v0.1.76
chore: NAPI-RS 3.0 stable by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1086
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.74...v0.1.75
fix: Ref was deprecated in NAPI-RS by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1085
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.73...v0.1.74
fix: wrong data pointer to ImageData in Electron env by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1076
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.72...v0.1.73
chore(deps): update dependency oxlint to v1 by @renovate in https://github.com/Brooooooklyn/canvas/pull/1072
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.71...v0.1.72
chore: migrate back to mimalloc safe by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1048
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.70...v0.1.71
chore(deps): update yarn to v4.9.0 by @renovate in https://github.com/Brooooooklyn/canvas/pull/1034
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.69...v0.1.70
ci: lint cpp files by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1017
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.68...v0.1.69
chore: napi and ctor update by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/1001
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.67...v0.1.68
fix: drawImage canvas implementation by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/989
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.66...v0.1.67
chore(deps): update dependency skia-canvas to v2 by @renovate in https://github.com/Brooooooklyn/canvas/pull/960
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.65...v0.1.66
chore(deps): update yarn to v4.5.3 by @renovate in https://github.com/Brooooooklyn/canvas/pull/954
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.64...v0.1.65
fix: missing icudtl.dat on Windows by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/953
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.63...v0.1.64
chore: update depot_tools by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/943
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.62...v0.1.63
chore: update benchmark framework and result by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/939
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.61...v0.1.62
feat: after clearing, the bitmap should be cleared, and the width and height should be reset to the initial values. by @rambo-panda in https://github.
bitmap should be cleared, and the width and height should be reset to the initial values. by @rambo-panda in https://github.com/Brooooooklyn/canvas/pull/937Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.60...v0.1.61
fix(SvgCanvas): allow canvas size modification by @twlite in https://github.com/Brooooooklyn/canvas/pull/928
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.59...v0.1.60
chore(deps): update yarn to v4.5.1 by @renovate in https://github.com/Brooooooklyn/canvas/pull/915
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.58...v0.1.59
fix: loadImage memleak and performance issue by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/914
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.57...v0.1.58
chore: remove useless import by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/902
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.56...v0.1.57
fix: ?? is error on node@10 by @ByLCY in https://github.com/Brooooooklyn/canvas/pull/889
?? is error on node@10 by @ByLCY in https://github.com/Brooooooklyn/canvas/pull/889Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.55...v0.1.56
chore(deps): update dependency oxlint to ^0.8.0 by @renovate in https://github.com/Brooooooklyn/canvas/pull/878
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.54...v0.1.55
chore(deps): update yarn to v4.3.0 by @renovate in https://github.com/Brooooooklyn/canvas/pull/842
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.53...v0.1.54
chore(deps): update dependency oxlint to ^0.3.0 by @renovate in https://github.com/Brooooooklyn/canvas/pull/817
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.52...v0.1.53
chore(deps): update yarn to v4.1.1 by @renovate in https://github.com/Brooooooklyn/canvas/pull/800
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.51...v0.1.52
fix: remove postinstall script for gnu/musl platform by @Brooooooklyn in https://github.com/Brooooooklyn/canvas/pull/797
Full Changelog: https://github.com/Brooooooklyn/canvas/compare/v0.1.50...v0.1.51
Your coding agent can read these notes before it upgrades. Set up the MCP server →