android-abx 0.4.0

Android Binary XML (ABX) parser using winnow
Documentation
[package]
name = "android-abx"
version = "0.4.0"
edition = "2024"
rust-version = "1.85"
description = "Android Binary XML (ABX) parser using winnow"
license = "MIT"
repository = "https://github.com/pngouin/android-abx"
homepage = "https://github.com/pngouin/android-abx"
documentation = "https://docs.rs/android-abx"
keywords = ["android", "xml", "binary", "parser", "serialization"]
categories = ["parser-implementations", "encoding"]
exclude = ["tests/fixtures/aosp_verify/", "cliff.toml"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
base64 = "0.23"
faster-hex = "0.10"
thiserror = "2"
serde = { version = "1", optional = true }
smol_str = "0.3"
quick-xml = { version = "0.41.0", optional = true }
winnow = "1.0.4"

[dev-dependencies]
serde = { version = "1", features = ["derive"] }
criterion = { version = "0.8", features = ["html_reports"] }

[features]
default = []
serde = ["dep:serde"]
xml = ["dep:quick-xml"]

[lints.rust]
unsafe_code = "forbid"
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(docsrs)"] }

[lints.clippy]
all = { level = "warn", priority = -1 }
missing_errors_doc = "warn"
missing_panics_doc = "warn"

[[example]]
name = "abx2xml"
path = "examples/abx2xml.rs"

[[example]]
name = "xml2abx"
path = "examples/xml2abx.rs"
required-features = ["xml"]

[[example]]
name = "serde_pkgs"
path = "examples/serde_pkgs.rs"
required-features = ["serde"]

[[example]]
name = "serde_root"
path = "examples/serde_root.rs"
required-features = ["serde"]

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

[[bench]]
name = "deserialize"
harness = false
required-features = ["serde"]

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

[[bench]]
name = "xml_encoding"
harness = false
required-features = ["xml"]