https://github.com/tirr-c/jxl-oxide
Pure Rust implementation of JPEG XL decoder
https://github.com/tirr-c/jxl-oxide
image jpeg-xl jxl rust
Last synced: 21 days ago
JSON representation
Pure Rust implementation of JPEG XL decoder
- Host: GitHub
- URL: https://github.com/tirr-c/jxl-oxide
- Owner: tirr-c
- License: apache-2.0
- Created: 2022-11-28T10:19:34.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-30T04:38:52.000Z (about 1 month ago)
- Last Synced: 2025-04-02T09:09:31.439Z (30 days ago)
- Topics: image, jpeg-xl, jxl, rust
- Language: Rust
- Homepage:
- Size: 2.63 MB
- Stars: 349
- Watchers: 14
- Forks: 15
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# jxl-oxide
[](https://crates.io/crates/jxl-oxide)
[](https://docs.rs/crate/jxl-oxide/)
[](https://github.com/tirr-c/jxl-oxide/actions/workflows/build.yml?query=branch%3Amain)A spec-conforming JPEG XL decoder written in pure Rust.
If you want to use it as a library, add `jxl-oxide` in `Cargo.toml`. `jxl-oxide` is a blanket crate
which covers various components of jxl-oxide.```toml
[dependencies]
jxl-oxide = "0.11.4"
```## Installing command line tool
Install `jxl-oxide-cli` using `cargo install`. It will install a binary named `jxl-oxide`.
```
cargo install jxl-oxide-cli
```## Feature flags
`jxl-oxide` and `jxl-oxide-cli` have different sets of feature flags.
**For `jxl-oxide`:**
- `rayon` (default): Enable multithreading using `rayon`.
- `lcms2`: Integrate into Little CMS 2 which supports arbitrary ICC profiles and enables CMYK to RGB
conversion. Note that this will add dependencies written in C.
- `moxcms`: Integrate into `moxcms` crate which supports arbitrary ICC profiles like `lcms2`.
`moxcms` is written in pure Rust, so it won't add any additional C dependency.
- `image`: Integrate into the `image` crate. `jxl_oxide::integration::JxlDecoder` will be made
available.**For `jxl-oxide-cli`:**
- `rayon` (default): Enable multithreading using `rayon`.
- `mimalloc` (default): Use mimalloc as memory allocator.
- `__devtools` (unstable): Enable devtool subcommands.
- `__ffmpeg` (unstable): Link to FFmpeg and enable video encoding in devtool subcommands.---
Dual-licensed under MIT and Apache 2.0.
[conformance]: https://github.com/libjxl/conformance