npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@gomander/napi-gif-encoder

v0.0.8

Published

A faster GIF Encoder for Node JS using Rust

Downloads

312

Readme

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 [email protected].
  • 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 |