ddex-parser 0.4.4

High-performance DDEX XML parser with SIMD optimization (40+ MB/s)
Documentation
# packages/ddex-parser/Cargo.toml (using workspace deps)
[package]
name = "ddex-parser"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
description = "High-performance DDEX XML parser with SIMD optimization (40+ MB/s)"
keywords = ["ddex", "xml", "parser", "music", "metadata"]
categories = ["parser-implementations", "multimedia::audio"]
documentation = "https://docs.rs/ddex-parser"
readme = "README.md"
homepage = "https://github.com/daddykev/ddex-suite"
exclude = ["*.bak", "*.backup", "*.log", "*.tmp", "tests/integration/*.ts"]

[dependencies]
# Core dependency
ddex-core = { version = "0.4.3", path = "../core" }

# Use workspace dependencies
quick-xml = { workspace = true }
thiserror = { workspace = true }
chrono = { workspace = true }
tracing = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }

# Parser-specific dependencies not in workspace
memchr = "2.7"
ahash = "0.8"
parking_lot = "0.12"
bytes = "1.5"
indexmap = "2.5"

# Optional workspace dependencies
tokio = { workspace = true, optional = true }
futures = { workspace = true, optional = true }
ts-rs = { workspace = true, optional = true }

# CLI dependencies
clap = { version = "4.4", features = ["derive", "env", "color", "suggestions"] }
clap_complete = "4.4"
env_logger = "0.11"
log = "0.4"
indicatif = "0.17"
colored = "2.1"
anyhow = "1.0"
rayon = "1.10"
crossbeam-channel = "0.5"
glob = "0.3"
csv = "1.3"
serde_yaml = "0.9"
toml = "0.8"
rmp-serde = "1.3"
base64 = "0.22"
html-escape = "0.2"
num_cpus = "1.16"

[dev-dependencies]
criterion = { workspace = true, features = ["html_reports"] }
tempfile = { workspace = true }
pretty_assertions = { workspace = true }
proptest = { workspace = true }
test-case = { workspace = true }
insta = { workspace = true }

[features]
default = ["async"]
async = ["tokio", "futures"]
# cli feature not needed - dependencies are already included
typescript = ["ts-rs", "ddex-core/ts-rs"]
wasm = []  # WebAssembly support
simd = []
bench = []
zero-copy = []  # High-performance zero-copy streaming parser

# Binaries
[[bin]]
name = "ddex-parser"
path = "src/main.rs"

[[bin]]
name = "generate-bench-report"
path = "src/bin/bench_report.rs"
required-features = ["async"]

# Benchmarks
[[bench]]
name = "parsing"
harness = false

[[bench]]
name = "streaming"
harness = false

[[bench]]
name = "memory"
harness = false

# Profile configurations for optimized builds
# Development profile with some optimizations for faster tests
# Size-optimized profile for WASM