@gomander/napi-gif-encoder
TypeScript icon, indicating that this package has built-in type declarations

0.0.8 • Public • Published

napi-gif-encoder

https://github.com/gomander/napi-gif-encoder/actions

A faster GIF Encoder for Node JS using Rust

This library is a fork of @tyrone-sudeium/napi-gif-encoder.
I made this fork because the original is not currently being maintained, and I needed a new feature added.

Install

npm install @gomander/napi-gif-encoder

Support matrix

Operating Systems

Linux x64/aarch64 Windows x64

NodeJS

Theoretically, any version of Node that supports N-API should work. The CI is validated against LTS versions of Node:

Node 18 Node 20 Node 22

Building

If you are using this as a dependency, since we use N-API, you don't need to build anything! However, if you want to tinker with this code or submit a PR, read below.

Developing

  • Install latest Rust. Suggest using rustup. If on Windows, use WSL for an easier time.
  • Install NodeJS@18+. LTS versions suggested.
  • Install yarn@1.x.
  • Install dependencies with yarn.

You can then compile the rust code with yarn build.

After running yarn build, you will see a napi-gif-encoder.<PLATFORM>.node file in the project root. This is the native addon built from lib.rs.

Try out using sample project

  • yarn
  • yarn build
  • cd sample
  • yarn
  • node .

You'll then see output.gif, which was encoded using the rust encoder.

You can compare this to a Node-based GIF encoder by running node . --js.

Performance

This data is a ten-run average of the time it took to encode the sample project on a Ryzen 7 7800X3D.
Historical data from the original author also suggests that this library scales better with more cores than Node-based GIF encoders.

Encoder Time
gif-encoder-2 692ms
napi-gif-encoder 250ms

Package Sidebar

Install

npm i @gomander/napi-gif-encoder

Weekly Downloads

222

Version

0.0.8

License

MIT

Unpacked Size

11 kB

Total Files

7

Last publish

Collaborators

  • gomander