[package]
name = "lib3mf-core"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
readme = "README.md"
description = "Parse and validate 3MF files for manufacturing workflows - production-ready with streaming parser and comprehensive validation"
keywords = ["3mf", "3d-printing", "manufacturing", "cad", "mesh"]
categories = ["parser-implementations", "encoding"]
homepage = "https://sscargal.github.io/lib3mf-rs/"
[dependencies]
aes-gcm = { version = "0.10.3", optional = true }
anyhow.workspace = true
byteorder.workspace = true
glam.workspace = true
quick-xml = { version = "0.37.0", features = ["serialize"] }
serde.workspace = true
thiserror.workspace = true
tokio = { workspace = true, optional = true }
uuid.workspace = true
zip = { version = "2.2.0", default-features = false, features = ["deflate"] }
rsa = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
sha1 = { workspace = true, optional = true }
base64 = { version = "0.22.1", optional = true }
rayon = { workspace = true, optional = true }
x509-parser = { workspace = true, optional = true }
rand = { workspace = true, optional = true }
lexical-core.workspace = true
png = { version = "0.17", optional = true }
[dev-dependencies]
proptest = "1.6.0"
criterion.workspace = true
[[bench]]
name = "core_bench"
harness = false
[features]
default = []
async = ["dep:tokio"]
parallel = ["dep:rayon"]
png-validation = ["dep:png"]
crypto = [
"dep:aes-gcm",
"dep:rsa",
"dep:sha1",
"dep:sha2",
"dep:x509-parser",
"dep:rand",
"dep:base64",
]
full = ["crypto", "parallel", "png-validation"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]