Brooooooklyn / resvg-js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

resvg-js

GitHub CI Status

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.

Installation

npm i @resvg/resvg-js
cnpm i @resvg/resvg-js
pnpm i @resvg/resvg-js

Example

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

Operating Systems

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

Ability

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.

Test

With ava, run npm run test to testing native addon. You can also switch to another testing framework if you want.

Develop requirements

  • Install latest Rust
  • Install Node.js@10+ which fully supported Node-API
  • Install yarn@1.x

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

npm version [xxx]

git push --follow-tags

GitHub actions will do the rest job for you.

License

MPLv2.0

About

License:Mozilla Public License 2.0


Languages

Language:Rust 85.0%Language:JavaScript 9.2%Language:TypeScript 5.4%Language:Shell 0.4%