[package]
edition = "2024"
rust-version = "1.93"
name = "zenavif"
version = "0.1.6"
build = false
include = [
"/src/**",
"/README.md",
"/CHANGELOG.md",
"/LICENSE*",
"/tests/**/*.rs",
"/benches/**",
"/examples/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust AVIF image codec powered by rav1d and zenravif"
documentation = "https://docs.rs/zenavif"
readme = "README.md"
keywords = [
"avif",
"decoder",
"encoder",
"av1",
"image",
]
categories = ["multimedia::images"]
license = "AGPL-3.0-only OR LicenseRef-Imazen-Commercial"
repository = "https://github.com/imazen/zenavif"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
rustdoc-args = ["--generate-link-to-definition"]
[features]
_dev = []
default = []
encode = ["dep:ravif"]
encode-asm = [
"encode",
"ravif/asm",
]
encode-imazen = [
"encode",
"ravif/imazen",
]
encode-threading = [
"encode",
"ravif/threading",
]
unsafe-asm = [
"dep:rav1d",
"rav1d/asm",
]
zencodec = [
"dep:zencodec",
"zenavif-parse/zencodec",
]
[lib]
name = "zenavif"
path = "src/lib.rs"
[[example]]
name = "accuracy_check"
path = "examples/accuracy_check.rs"
required-features = ["_dev"]
[[example]]
name = "benchmark_autovec"
path = "examples/benchmark_autovec.rs"
required-features = ["_dev"]
[[example]]
name = "benchmark_simd"
path = "examples/benchmark_simd.rs"
required-features = ["_dev"]
[[example]]
name = "compare_libavif"
path = "examples/compare_libavif.rs"
[[example]]
name = "corpus_test"
path = "examples/corpus_test.rs"
[[example]]
name = "debug_accuracy"
path = "examples/debug_accuracy.rs"
required-features = ["_dev"]
[[example]]
name = "debug_bounds"
path = "examples/debug_bounds.rs"
[[example]]
name = "debug_yuv_bilinear"
path = "examples/debug_yuv_bilinear.rs"
required-features = ["_dev"]
[[example]]
name = "decode_avif"
path = "examples/decode_avif.rs"
[[example]]
name = "encode_sweep"
path = "examples/encode_sweep.rs"
required-features = [
"encode-imazen",
"encode-threading",
]
[[example]]
name = "extract_av1"
path = "examples/extract_av1.rs"
[[example]]
name = "inspect_metadata"
path = "examples/inspect_metadata.rs"
[[example]]
name = "inspect_pixels"
path = "examples/inspect_pixels.rs"
[[example]]
name = "inspect_planes"
path = "examples/inspect_planes.rs"
[[example]]
name = "libyuv_benchmark"
path = "examples/libyuv_benchmark.rs"
required-features = ["_dev"]
[[example]]
name = "retry_failures"
path = "examples/retry_failures.rs"
[[example]]
name = "save_png"
path = "examples/save_png.rs"
[[example]]
name = "simd_check"
path = "examples/simd_check.rs"
[[example]]
name = "test_real_avif"
path = "examples/test_real_avif.rs"
[[example]]
name = "test_yuv_bilinear"
path = "examples/test_yuv_bilinear.rs"
required-features = ["_dev"]
[[example]]
name = "verify_yuv_formula"
path = "examples/verify_yuv_formula.rs"
required-features = ["_dev"]
[[example]]
name = "yuv_benchmark"
path = "examples/yuv_benchmark.rs"
required-features = ["_dev"]
[[example]]
name = "yuv_profile"
path = "examples/yuv_profile.rs"
required-features = ["_dev"]
[[test]]
name = "animation_decode"
path = "tests/animation_decode.rs"
[[test]]
name = "differential_4k"
path = "tests/differential_4k.rs"
[[test]]
name = "differential_comprehensive"
path = "tests/differential_comprehensive.rs"
[[test]]
name = "differential_svtav1"
path = "tests/differential_svtav1.rs"
[[test]]
name = "encode_roundtrip"
path = "tests/encode_roundtrip.rs"
[[test]]
name = "gainmap_decode"
path = "tests/gainmap_decode.rs"
[[test]]
name = "gainmap_encode"
path = "tests/gainmap_encode.rs"
[[test]]
name = "integration_corpus"
path = "tests/integration_corpus.rs"
[[test]]
name = "linku_corpus"
path = "tests/linku_corpus.rs"
[[test]]
name = "metadata_roundtrip"
path = "tests/metadata_roundtrip.rs"
[[test]]
name = "parity_test"
path = "tests/parity_test.rs"
[[test]]
name = "pixel_verification"
path = "tests/pixel_verification.rs"
[[test]]
name = "test_yuv_accuracy"
path = "tests/test_yuv_accuracy.rs"
[[bench]]
name = "decode_benchmark"
path = "benches/decode_benchmark.rs"
harness = false
[[bench]]
name = "yuv_conversion_benchmark"
path = "benches/yuv_conversion_benchmark.rs"
harness = false
required-features = ["_dev"]
[[bench]]
name = "yuv_crate_comparison"
path = "benches/yuv_crate_comparison.rs"
harness = false
required-features = ["_dev"]
[dependencies.almost-enough]
version = "0.4.3"
default-features = false
[dependencies.archmage]
version = "0.9.15"
features = ["macros"]
[dependencies.bytemuck]
version = "1.25.0"
features = ["derive"]
default-features = false
[dependencies.enough]
version = "0.4.3"
[dependencies.imgref]
version = "1.12.0"
[dependencies.linear-srgb]
version = "0.6.7"
[dependencies.log]
version = "0.4.29"
[dependencies.magetypes]
version = "0.9.15"
[dependencies.rav1d]
version = "1.1.0"
features = [
"bitdepth_8",
"bitdepth_16",
]
optional = true
default-features = false
[dependencies.rav1d-safe]
version = "0.5.3"
features = [
"bitdepth_8",
"bitdepth_16",
]
default-features = false
[dependencies.ravif]
version = "0.1.2"
features = ["stop"]
optional = true
default-features = false
package = "zenravif"
[dependencies.rgb]
version = "0.8.52"
features = ["bytemuck"]
default-features = false
[dependencies.safe_unaligned_simd]
version = "0.2.5"
[dependencies.thiserror]
version = "2.0.18"
default-features = false
[dependencies.whereat]
version = "0.1.5"
[dependencies.yuv]
version = "0.8.12"
[dependencies.zenavif-parse]
version = "0.6.0"
[dependencies.zencodec]
version = "0.1.19"
optional = true
[dependencies.zenpixels]
version = "0.2.10"
features = [
"imgref",
"rgb",
]
default-features = false
[dependencies.zenpixels-convert]
version = "0.2.10"
features = ["rgb"]
default-features = false
[dev-dependencies.almost-enough]
version = "0.4.3"
features = ["alloc"]
[dev-dependencies.archmage]
version = "0.9.15"
features = ["std"]
[dev-dependencies.env_logger]
version = "0.11.10"
default-features = false
[dev-dependencies.fast-ssim2]
version = "0.8.0"
[dev-dependencies.image]
version = "0.25.10"
[dev-dependencies.png]
version = "0.18.0"
[dev-dependencies.zenbench]
version = "0.1.2"
features = ["criterion-compat"]
[dev-dependencies.zensim]
version = "0.2.4"
features = [
"imgref",
"zenpixels",
]
[dev-dependencies.zensim-regress]
version = "0.3.0"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ['cfg(feature, values("encode-svtav1"))']
[profile.test]
opt-level = 2