[package] name = "craft-doc" description = "Read-only access to PhotoCraft, VectorCraft and EffectCraft documents: format detection, version, embedded previews and PDF, and the layer and page outline." version.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true repository.workspace = true [lints] workspace = true [features] default = [] # `pcraft_layer_rgba`: a PhotoCraft layer's pixels and its layer mask. pcraft-pixels = ["dep:blake3", "dep:ruzstd"] [dependencies] craft-ecproj-format = { workspace = true } craft-pcraft-format = { workspace = true } craft-vectorcraft-format = { workspace = true } flate2 = { version = "1", default-features = false, features = ["rust_backend"] } serde = { workspace = true } # `unbounded_depth`: PhotoCraft manifests nest deeper than serde_json's 128 levels; the crate # checks the nesting against `Limits::max_depth` before parsing. serde_json = { workspace = true, features = ["unbounded_depth"] } thiserror = { workspace = true } # `pcraft-pixels`: PhotoCraft's tiles are zstd frames named by the BLAKE3 hash of their samples. blake3 = { version = "1.8", default-features = false, features = ["pure"], optional = true } ruzstd = { version = "0.9", default-features = false, features = ["std"], optional = true } [dev-dependencies] proptest = { workspace = true }