[package]
edition = "2021"
rust-version = "1.81"
name = "xmloxide"
version = "0.3.0"
build = false
include = [
"src/**/*.rs",
"examples/**/*.rs",
"examples/**/*.c",
"benches/**/*.rs",
"include/*.h",
"Makefile",
"Cargo.toml",
"LICENSE",
"README.md",
"!tests/html5lib-tests/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A pure Rust reimplementation of libxml2 — memory-safe XML/HTML parsing"
homepage = "https://github.com/jonwiggins/xmloxide"
documentation = "https://docs.rs/xmloxide"
readme = "README.md"
keywords = [
"xml",
"html",
"parser",
"dom",
"xpath",
]
categories = [
"parser-implementations",
"web-programming",
]
license = "MIT"
repository = "https://github.com/jonwiggins/xmloxide"
[package.metadata.docs.rs]
features = [
"cli",
"ffi",
"serde",
"async",
]
[features]
async = ["dep:tokio"]
bench-libxml2 = ["dep:libxml"]
bench-rust-xml = [
"dep:roxmltree",
"dep:quick-xml",
]
cli = ["dep:clap"]
default = ["cli"]
ffi = []
serde = ["dep:serde"]
[lib]
name = "xmloxide"
crate-type = ["lib"]
path = "src/lib.rs"
[[bin]]
name = "xmllint"
path = "src/bin/xmllint.rs"
required-features = ["cli"]
[[example]]
name = "basic_parse"
path = "examples/basic_parse.rs"
[[example]]
name = "c14n"
path = "examples/c14n.rs"
[[example]]
name = "error_recovery"
path = "examples/error_recovery.rs"
[[example]]
name = "html_parse"
path = "examples/html_parse.rs"
[[example]]
name = "push_parser"
path = "examples/push_parser.rs"
[[example]]
name = "reader"
path = "examples/reader.rs"
[[example]]
name = "sax_streaming"
path = "examples/sax_streaming.rs"
[[example]]
name = "serialize"
path = "examples/serialize.rs"
[[example]]
name = "validation"
path = "examples/validation.rs"
[[example]]
name = "xinclude"
path = "examples/xinclude.rs"
[[example]]
name = "xpath_query"
path = "examples/xpath_query.rs"
[[bench]]
name = "comparison_bench"
path = "benches/comparison_bench.rs"
harness = false
required-features = ["bench-libxml2"]
[[bench]]
name = "ecosystem_bench"
path = "benches/ecosystem_bench.rs"
harness = false
required-features = ["bench-rust-xml"]
[[bench]]
name = "parser_bench"
path = "benches/parser_bench.rs"
harness = false
[dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[dependencies.encoding_rs]
version = "0.8"
[dependencies.libxml]
version = "0.3"
optional = true
[dependencies.quick-xml]
version = "0.37"
optional = true
[dependencies.roxmltree]
version = "0.20"
optional = true
[dependencies.serde]
version = "1"
optional = true
[dependencies.tokio]
version = "1"
features = ["io-util"]
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio]
version = "1"
features = [
"io-util",
"rt",
"macros",
"fs",
]
[lints.clippy]
expect_used = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
unwrap_used = "warn"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "deny"
[profile.bench]
lto = "thin"
codegen-units = 1