[package]
edition = "2024"
rust-version = "1.90.0"
name = "rawshift-image"
version = "0.1.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Still-image decoding, RAW processing, and encoding for rawshift"
homepage = "https://github.com/justin13888/rawshift"
documentation = "https://docs.rs/rawshift-image"
readme = "README.md"
keywords = [
"raw",
"image",
"dng",
"arw",
"photo",
]
categories = [
"multimedia::images",
"encoding",
"parser-implementations",
]
license = "MPL-2.0"
repository = "https://github.com/justin13888/rawshift"
[package.metadata.docs.rs]
features = ["full"]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
arw = ["arw-decode"]
arw-decode = ["tiff-parser"]
avif = [
"avif-decode",
"avif-encode",
]
avif-decode = ["avif-decode-image"]
avif-decode-image = [
"avif-decode",
"dep:image",
"exif",
]
avif-encode = ["avif-encode-ravif"]
avif-encode-ravif = [
"avif-encode",
"dep:ravif",
"exif",
"container-embed",
]
container-embed = ["dep:img-parts"]
cr2 = ["cr2-decode"]
cr2-decode = ["tiff-parser"]
cr3 = ["cr3-decode"]
cr3-decode = ["tiff-parser"]
crw = ["crw-decode"]
crw-decode = []
default = [
"jpeg",
"png",
"webp",
"jxl-decode",
"gif-decode",
"tiff-decode",
"ppm-decode",
]
dng = [
"dng-decode",
"dng-encode",
]
dng-decode = [
"tiff-parser",
"jxl-decode",
]
dng-encode = ["tiff-parser"]
exif = ["dep:little_exif"]
experimental = [
"raw-stabilizing",
"raw-incomplete",
]
full = [
"jpeg",
"png",
"webp",
"jxl",
"gif",
"tiff",
"avif",
"heic",
"svg",
"ppm",
"serde",
"experimental",
]
gif = ["gif-decode"]
gif-decode = ["gif-decode-gif"]
gif-decode-gif = [
"gif-decode",
"dep:gif",
]
heic = ["heic-decode"]
heic-decode = ["heic-decode-libheif"]
heic-decode-libheif = [
"heic-decode",
"dep:libheif-rs",
"exif",
]
heic-vendored = [
"heic-decode",
"libheif-rs/embedded-libheif",
]
jpeg = [
"jpeg-decode",
"jpeg-encode",
]
jpeg-decode = ["jpeg-decode-zune"]
jpeg-decode-zune = [
"jpeg-decode",
"dep:zune-jpeg",
"zune-runtime",
"exif",
]
jpeg-encode = ["jpeg-encode-jpeg-enc"]
jpeg-encode-jpeg-enc = [
"jpeg-encode",
"dep:jpeg-encoder",
"exif",
"container-embed",
]
jxl = [
"jxl-decode",
"jxl-encode",
]
jxl-decode = ["jxl-decode-jxl-oxide"]
jxl-decode-jxl-oxide = [
"jxl-decode",
"dep:jxl-oxide",
]
jxl-encode = ["jxl-encode-zune"]
jxl-encode-zune = [
"jxl-encode",
"jxl-decode",
"dep:zune-jpegxl",
"zune-runtime",
"exif",
"container-embed",
]
nef = ["nef-decode"]
nef-decode = ["tiff-parser"]
png = [
"png-decode",
"png-encode",
]
png-decode = ["png-decode-zune"]
png-decode-zune = [
"png-decode",
"dep:zune-png",
"zune-runtime",
"exif",
]
png-encode = ["png-encode-zune"]
png-encode-zune = [
"png-encode",
"dep:zune-png",
"zune-runtime",
"exif",
"container-embed",
]
ppm = ["ppm-decode"]
ppm-decode = ["ppm-decode-zune"]
ppm-decode-zune = [
"ppm-decode",
"dep:zune-ppm",
"zune-runtime",
]
raf = ["raf-decode"]
raf-decode = []
raw-incomplete = [
"cr2",
"cr3",
"crw",
"nef",
"raf",
]
raw-stabilizing = [
"arw",
"dng",
]
serde = [
"dep:serde",
"rawshift-core/serde",
]
svg = ["svg-decode"]
svg-decode = ["svg-decode-resvg"]
svg-decode-resvg = [
"svg-decode",
"dep:resvg",
]
tiff = ["tiff-decode"]
tiff-decode = ["tiff-decode-tiff"]
tiff-decode-tiff = [
"tiff-decode",
"dep:tiff",
"exif",
]
tiff-parser = ["dep:binrw"]
webp = [
"webp-decode",
"webp-encode",
]
webp-decode = ["webp-decode-libwebp"]
webp-decode-libwebp = [
"webp-decode",
"dep:libwebp-sys",
"exif",
]
webp-encode = ["webp-encode-libwebp"]
webp-encode-libwebp = [
"webp-encode",
"dep:libwebp-sys",
"exif",
"container-embed",
]
zune-runtime = ["dep:zune-core"]
[lib]
name = "rawshift_image"
path = "src/lib.rs"
[[example]]
name = "decode_standard"
path = "examples/decode_standard.rs"
[[example]]
name = "develop_image"
path = "examples/develop_image.rs"
required-features = ["experimental"]
[[example]]
name = "encode_in_memory"
path = "examples/encode_in_memory.rs"
[[example]]
name = "export_image"
path = "examples/export_image.rs"
required-features = ["experimental"]
[[example]]
name = "generate_test_fixtures"
path = "examples/generate_test_fixtures.rs"
[[example]]
name = "heic_inspect"
path = "examples/heic_inspect.rs"
required-features = ["heic"]
[[example]]
name = "metadata_dump"
path = "examples/metadata_dump.rs"
required-features = ["experimental"]
[[test]]
name = "dng_check"
path = "tests/dng_check.rs"
required-features = ["tiff-parser"]
[[test]]
name = "export_format_tests"
path = "tests/export_format_tests.rs"
[[test]]
name = "heic_aux"
path = "tests/heic_aux.rs"
required-features = ["heic"]
[[test]]
name = "raw_decode_fixtures"
path = "tests/raw_decode_fixtures.rs"
required-features = ["experimental"]
[[test]]
name = "standard_decode_fixtures"
path = "tests/standard_decode_fixtures.rs"
[[test]]
name = "tiff_parser_tests"
path = "tests/tiff_parser_tests.rs"
required-features = ["tiff-parser"]
[[bench]]
name = "decode"
path = "benches/decode.rs"
harness = false
[[bench]]
name = "demosaic"
path = "benches/demosaic.rs"
harness = false
[[bench]]
name = "pipeline"
path = "benches/pipeline.rs"
harness = false
[dependencies.binrw]
version = "0.15"
optional = true
[dependencies.gif]
version = "0.13"
optional = true
[dependencies.image]
version = "0.25"
features = ["avif-native"]
optional = true
default-features = false
[dependencies.img-parts]
version = "0.4"
optional = true
[dependencies.jpeg-encoder]
version = "0.7"
optional = true
[dependencies.jxl-oxide]
version = "0.12.5"
optional = true
[dependencies.libheif-rs]
version = "2.7"
optional = true
[dependencies.libwebp-sys]
version = "0.14"
optional = true
[dependencies.little_exif]
version = "0.6"
optional = true
[dependencies.ravif]
version = "0.13"
optional = true
[dependencies.rawshift-core]
version = "0.1.0"
[dependencies.rayon]
version = "1.11.0"
[dependencies.resvg]
version = "0.44"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tiff]
version = "0.11"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.zune-core]
version = "0.5"
optional = true
[dependencies.zune-jpeg]
version = "0.5"
optional = true
[dependencies.zune-jpegxl]
version = "0.5"
optional = true
[dependencies.zune-png]
version = "0.5"
optional = true
[dependencies.zune-ppm]
version = "0.5"
optional = true
[dev-dependencies.clap]
version = "4.5"
features = ["derive"]
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.eyre]
version = "0.6.12"
[dev-dependencies.serde]
version = "1.0"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.tokio]
version = "1.50"
features = ["full"]
[dev-dependencies.tracing]
version = "0.1"
features = ["release_max_level_debug"]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(any_raw)",
"cfg(any_standard_decode)",
"cfg(any_standard_encode)",
]