Files
lightcraft/crates/codecs/Cargo.toml
T
Brandon ThomasandClaude Opus 5.5 304180a500 M1.1: lightcraft-codecs decode/encode, ICC, sniffing
Decoders (JPEG via zune-jpeg + jpeg-decoder for DCT scaling/CMYK, PNG,
TIFF, WebP, GIF, BMP, PSD composite, JPEG XL via jxl-oxide) produce linear
Rgb32f in source primaries with SourceSpace; ICC matrix/TRC applied exactly,
LUT/CMYK profiles through moxcms; to_working() to linear Rec.2020 D65.
Encoders: JPEG, PNG 8/16, TIFF 8/16/32f, lossless WebP, AVIF (native).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 11:30:26 -04:00

42 lines
1.3 KiB
TOML

[package]
name = "lightcraft-codecs"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "LightCraft standard image codecs: sniffing, decode to linear light, ICC, encoders (L1)"
[lints]
workspace = true
[dependencies]
lightcraft-geom = { workspace = true }
lightcraft-color = { workspace = true }
lightcraft-raster = { workspace = true }
serde = { workspace = true }
bytemuck = { workspace = true }
thiserror = { workspace = true }
rayon = { workspace = true, optional = true }
image = { workspace = true, features = ["gif", "bmp"] }
zune-jpeg = { workspace = true }
zune-core = { workspace = true }
jpeg-decoder = { workspace = true }
jpeg-encoder = { workspace = true }
png = { workspace = true }
tiff = { workspace = true }
image-webp = { workspace = true }
moxcms = { workspace = true }
jxl-oxide = { workspace = true, optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
ravif = { workspace = true, optional = true }
[features]
default = ["parallel", "jxl", "avif"]
parallel = ["dep:rayon", "lightcraft-raster/parallel", "jpeg-decoder/rayon"]
jxl = ["dep:jxl-oxide"]
## AVIF encoding via ravif/rav1e (pure Rust, BSD). Native targets only; a no-op on wasm32.
avif = ["dep:ravif"]
[dev-dependencies]
proptest = { workspace = true }