#jpeg #image-compression #image #encoder #codec #transform #decoder

turbojpeg

Fast and easy JPEG encoding, decoding and lossless transforms with TurboJPEG

19 releases (5 stable)

1.1.1 Aug 1, 2024
1.1.0 Apr 14, 2024
1.0.1 Mar 17, 2024
0.5.4 Jul 31, 2023
0.1.0 May 2, 2021

#66 in Images

Download history 1184/week @ 2024-07-28 1013/week @ 2024-08-04 883/week @ 2024-08-11 827/week @ 2024-08-18 933/week @ 2024-08-25 1150/week @ 2024-09-01 1069/week @ 2024-09-08 1035/week @ 2024-09-15 1265/week @ 2024-09-22 1171/week @ 2024-09-29 1107/week @ 2024-10-06 1295/week @ 2024-10-13 1045/week @ 2024-10-20 1299/week @ 2024-10-27 1082/week @ 2024-11-03 1307/week @ 2024-11-10

4,787 downloads per month
Used in 7 crates (6 directly)

Unlicense OR MIT

4.5MB
87K SLoC

C 52K SLoC // 0.2% comments Assembly 24K SLoC // 0.2% comments GNU Style Assembly 7K SLoC // 0.1% comments Rust 3.5K SLoC // 0.0% comments Bitbake 742 SLoC

turbojpeg

Rust bindings for TurboJPEG, which provides simple and fast operations for JPEG images:

  • Compression (encoding)
  • Decompression (decoding)
  • Lossless transformations

Usage with image-rs (version 0.24)

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

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

and then use the functions turbojpeg::decompress_image and turbojpeg::compress_image.

For more advanced usage without the image crate, please see the documentation.

Requirements

The low-level binding to libturbojpeg is provided by the crate turbojpeg-sys, which needs to link to the C library. Typically, you will need CMake, a C compiler and NASM to build the library from source, but see its README for details.

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:

  • Improving the build process of turbojpeg-sys crate, so that it works seamlessly on a wide range of systems.
  • Testing.
  • Extending the safe Rust API provided by turbojpeg crate.

License

This software is released into the public domain or is available with the MIT license (your choice).

Dependencies