rust-turbojpeg

Rust bindings for TurboJPEG, which provides simple and fast compression/decompression of JPEG images.

TurboJPEG is a high-level API provided by [libjpeg-turbo].

Usage

To quickly encode and decode images from the image crate, add this to the [dependencies] section in your Cargo.toml:

turbojpeg = {version = "0.3", features = ["image"]}

and then use the functions turbojpeg::decompress_image and turbojpeg::compress_image. For more details, please see the documentation.

Requirements

The low-level binding to libturbojpeg is provided by the crate turbojpeg-sys, which needs:

By default, the turbojpeg-sys crate uses a pregenerated Rust binding code (so you don't need the C headers) and the default linker flags -l turbojpeg. However, this behavior can be altered in several ways:

All this magic is implemented in the build.rs script in turbojpeg-sys. If you think that it could be improved, or if you encounter an error on your system, please open an issue or a pull request.

Contributing

All contributions are welcome! Please contact me (@honzasp) or open a pull request. This crate is rather minimal, the main areas of improvement are:

License

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.