# gifski-lite
Highest-quality GIF encoder for the Web based on [pngquant](https://pngquant.org) and the original [gifski](https://github.com/ImageOptim/gifski).
**gifski-lite** converts video frames to GIF animations using pngquant's fancy features for efficient cross-frame palettes and temporal dithering. It produces animated GIFs that use thousands of colors per frame.
![(CC) Blender Foundation | gooseberry.blender.org](https://gif.ski/demo.gif)
This fork simplifies the Original [gifski](https://gif.ski) library in order to make it more easily compatible with the Web and as a WebAssembly module.
## Usage
gifski-lite is intended to target the Web only (potentially Node.js and Deno too).
The recommended way is to add this library as a dependency to a rust project that compiles to WebAssembly.
_<Todo: add link to wasm project here>_
## Building
1. [Install Rust via rustup](https://www.rust-lang.org/en-US/install.html) or run `rustup update`. This project only supports up-to-date versions of Rust. You may get compile errors, warnings about "unstable edition", etc. if you don't run `rustup update` regularly.
2. Clone the repository: `git clone https://github.com/jamsinclair/gifski-lite`
3. In the cloned directory, run: `cargo build --release`
## License
AGPL 3 or later.
### Acknowledgements
This is a fork of the original [gifski](https://github.com/ImageOptim/gifski) project. This fork makes some significant changes:
- Refactors to slower single-threaded approach (for now, until can get threading working with WebAssembly)
- Remove features for ffmpeg and gifsicle
- Removes CLI tool and other compiled binaries
- Removes support for adding PNG frame files
- Removes C API