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.
npm i @resvg/resvg-js
cnpm i @resvg/resvg-js
pnpm i @resvg/resvg-js
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 |
---|---|
node12 | node14 | node16 | |
---|---|---|---|
Windows x64 | ✓ | ✓ | ✓ |
Windows x32 | ✓ | ✓ | ✓ |
Windows arm64 | ✓ | ✓ | ✓ |
macOS x64 | ✓ | ✓ | ✓ |
macOS arm64(M1) | ✓ | ✓ | ✓ |
Linux x64 gnu | ✓ | ✓ | ✓ |
Linux x64 musl | ✓ | ✓ | ✓ |
Linux arm gnu | ✓ | ✓ | ✓ |
Linux arm64 gnu | ✓ | ✓ | ✓ |
Linux arm64 musl | ✓ | ✓ | ✓ |
Android arm64 | ✓ | ✓ | ✓ |
FreeBSD x64 | ✓ | ✓ | ✓ |
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.
With ava, run npm run test
to testing native addon. You can also switch to another testing framework if you want.
- Install latest
Rust
- Install
Node.js@10+
which fully supportedNode-API
- Install
[email protected]
- 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.
npm version [xxx]
git push --follow-tags
GitHub actions will do the rest job for you.