All formats

JPEG XL libraries

Almost every JPEG XL library is built on libjxl, the reference encoder and decoder. Independent decoders exist in Rust (jxl-oxide, jxl-rs) and Java (JXLatte). Only libjxl-based libraries can encode lossy JPEG XL and do lossless JPEG recompression.

Language Library Read Write Notes
C/C++ libjxl yes yes reference implementation, every feature, cjxl/djxl tools
C/C++ jxldec yes no plain-C decoder, no dependencies, one file; no license file yet
C# Magick.NET yes yes ImageMagick for .NET, libjxl bundled in the NuGet package
Java JXLatte yes no pure Java decoder, no animation yet
Go gen2brain/jpegxl yes yes libjxl as WebAssembly, no cgo; image.Decode support
Python pillow-jxl-plugin yes yes adds JXL to Pillow; GPL-3.0
Python pyvips yes yes libvips binding, fast and low memory
Ruby ruby-vips yes yes libvips binding
Rust jxl-oxide yes no pure Rust decoder, image crate integration
Rust jpegxl-rs yes yes libjxl binding; GPL-3.0
PHP Imagick yes yes ImageMagick extension, needs ImageMagick built with libjxl

By language#