resvg-js
A high-performance SVG renderer, powered by Rust based resvg and napi-rs.
- Very fast, safe and zero dependencies!
- Cross-platform support, including Apple M1.
- No need for node-gyp and postinstall, the
.node
file has been compiled for you. - Support system fonts and custom fonts in SVG text.
Installation
npm i @resvg/resvg-js
cnpm i @resvg/resvg-js
pnpm i @resvg/resvg-js
Example
This example will load Source Han Serif, and then render the SVG to PNG.
node example/index.js
Loaded 1 font faces in 0ms.
Font './example/SourceHanSerifCN-Light-subset.ttf':0 found in 0.006ms.
✨ Done in 55.65491008758545 ms
SVG | PNG |
---|---|
![]() |
Support matrix
Build
You can set the name of the generated .node
file in napi.name
of package.json.
After npm run build
command, you can see resvgjs.[darwin|win32|linux].node
file in project root. This is the native addon built from lib.rs.
Develop requirements
- Install latest
Rust
- Install
[email protected]+
which fully supportedNode-API
- Install
[email protected]
Test in local
- yarn
- yarn build
- yarn test
And you will see:
$ ava --verbose
✔ sync function from native code
✔ sleep function from native code (201ms)
─
2 tests passed
✨ Done in 1.12s.
Release package
We use GitHub actions to automatically publish npm packages.
# 1.0.0 => 1.0.1
npm version patch
# or 1.0.0 => 1.1.0
npm version minor
git push --follow-tags