[package]
edition = "2021"
rust-version = "1.92"
name = "zenjpeg"
version = "0.5.0"
authors = ["Lilith River <lilith@imazen.io>"]
build = false
exclude = [
"tests/",
"test_cache/",
"benches/",
"examples/",
"docs/",
"fuzz/",
"scripts/",
"reports/",
"*.log",
"*.csv",
"*.png",
"*.jpg",
"*.jpeg",
"refactor.md",
"xyb.md",
"QUALITY_INVESTIGATION.md",
".gitignore",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust JPEG encoder/decoder with perceptual optimizations"
documentation = "https://docs.rs/zenjpeg"
readme = "README.md"
keywords = [
"jpeg",
"image",
"encoder",
"decoder",
"compression",
]
categories = [
"multimedia::images",
"encoding",
]
license = "AGPL-3.0-or-later"
repository = "https://github.com/imazen/zenjpeg"
[features]
alloc-instrument = ["std"]
archmage-simd = [
"dep:archmage",
"dep:magetypes",
"dep:safe_unaligned_simd",
]
cms = ["cms-lcms2"]
cms-lcms2 = [
"dep:lcms2",
"dep:zune-jpeg",
]
cms-moxcms = [
"dep:moxcms",
"dep:zune-jpeg",
]
corpus-tests = []
debug-tokens = []
decoder = []
default = [
"std",
"yuv",
"archmage-simd",
"trellis",
]
ffi-tests = []
mozjpeg-tables = []
optimized-tables = []
parallel = [
"std",
"dep:rayon",
]
profile = []
sharp-yuv = []
std = []
test-utils = ["std"]
trellis = []
ultrahdr = [
"dep:ultrahdr-core",
"decoder",
"std",
]
wasm-simd = []
wasm-trace = ["dep:web-sys"]
yuv = ["dep:yuv"]
[lib]
name = "zenjpeg"
path = "src/lib.rs"
[dependencies.aligned-vec]
version = "0.6"
[dependencies.archmage]
version = "0.3.0"
features = [
"macros",
"bytemuck",
"avx512",
]
optional = true
[dependencies.bytemuck]
version = "1.14"
features = ["derive"]
[dependencies.enough]
version = "0.3"
features = ["std"]
[dependencies.imgref]
version = "1.10"
[dependencies.lcms2]
version = "6.0"
optional = true
[dependencies.linear-srgb]
version = "0.3.1"
[dependencies.magetypes]
version = "0.3.0"
features = ["bytemuck"]
optional = true
[dependencies.moxcms]
version = "0.6"
optional = true
[dependencies.multiversed]
version = "0.1"
[dependencies.multiversion]
version = "0.8"
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.rgb]
version = "0.8"
features = ["as-bytes"]
[dependencies.safe_unaligned_simd]
version = "0.2.3"
optional = true
[dependencies.thiserror]
version = "2.0"
default-features = false
[dependencies.tinyvec]
version = "1.10"
features = ["alloc"]
[dependencies.ultrahdr-core]
version = "0.1.0"
optional = true
[dependencies.web-sys]
version = "0.3"
features = ["console"]
optional = true
[dependencies.whereat]
version = "0.1.3"
[dependencies.wide]
version = "1.1"
[dependencies.yuv]
version = "0.8"
features = ["professional_mode"]
optional = true
[dependencies.zune-jpeg]
version = "0.5"
optional = true
[dev-dependencies.almost-enough]
version = "0.3"
features = ["std"]
[dev-dependencies.fast-ssim2]
version = "0.6"
features = ["imgref"]
[dev-dependencies.jpeg-decoder]
version = "0.3.2"
[dev-dependencies.serde]
version = "1.0"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.sha2]
version = "0.10"
[dev-dependencies.smallvec]
version = "1.13"
[dev-dependencies.test-case]
version = "3.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.approx]
version = "0.5"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.bincode]
version = "1.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.butteraugli]
version = "0.3"
features = ["unsafe-perf"]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.chrono]
version = "0.4"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.criterion]
version = "0.5"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.dssim]
version = "3.2"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.img-parts]
version = "0.4"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.kamadak-exif]
version = "0.6"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.mozjpeg-rs]
version = "0.5.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.png]
version = "0.17"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.proptest]
version = "1.4"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rayon]
version = "1.10"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.ultrahdr-core]
version = "0.1.0"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.yuv]
version = "0.8"
features = ["professional_mode"]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.zune-jpeg]
version = "0.5"
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.console_error_panic_hook]
version = "0.1.7"
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.getrandom]
version = "0.3"
features = ["wasm_js"]
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen]
version = "0.2.108"
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen-test]
version = "0.3.58"
[lints.clippy]
approx_constant = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
doc_markdown = "allow"
doc_overindented_list_items = "allow"
enum_variant_names = "allow"
excessive_precision = "allow"
items_after_statements = "allow"
manual_div_ceil = "allow"
manual_is_multiple_of = "allow"
many_single_char_names = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
must_use_candidate = "allow"
needless_range_loop = "allow"
redundant_closure = "allow"
similar_names = "allow"
too_many_arguments = "allow"
type_complexity = "allow"
uninlined_format_args = "allow"
unnecessary_wraps = "allow"
unreadable_literal = "allow"
unused_self = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "allow"