chadpath 0.1.0

XPath 1.0 / XSLT engine — a fork of xrust (Apache-2.0) with XPath positional-predicate correctness fixes and parser performance improvements. Used by chadselect.
Documentation
[package]
name = "chadpath"
version = "0.1.0"
keywords = ["xml", "xpath", "xslt", "html", "scraping"]
categories = ["parser-implementations"]
description = "XPath 1.0 / XSLT engine — a fork of xrust (Apache-2.0) with XPath positional-predicate correctness fixes and parser performance improvements. Used by chadselect."
authors = [
    # Original xrust authors (Apache-2.0):
    "Steve Ball <Steve.Ball@explain.com.au>",
    "Daniel Murphy <daniel@devasta.ie>",
    # chadpath fork maintainers:
    "Cerberus <markjacksoncbt@gmail.com>",
]
license = "Apache-2.0"
repository = "https://github.com/markjacksoncerberus/xrust"
documentation = "https://docs.rs/chadpath/"
readme = "README.md"
edition = "2024"
# Keep the published crate small: the W3C XML conformance corpora (~68 MB) are
# only needed to run xrust's own test suite, not to use the library.
exclude = [
    "tests/xml/",
    "tests/conformance/",
]

# Keep the importable crate name `xrust` so the fork's own code, doctests, and
# downstream `use xrust::...` continue to work unchanged. The published crate
# (on crates.io) is `chadpath`; depend on it as
#   xrust = { package = "chadpath", version = "0.1" }
[lib]
name = "xrust"

[features]
# The xslt feature enables XSLT support
default = ["xslt"]
xslt = []
# Do you want to run unit tests for the conformance suite
test-conformance-xml = []
test-conformance-xmlid = []


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

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
qualname = "0.0.1"
stacksafe = "1"
rust_decimal = "1.38.0"
rust_decimal_macros = "1.38.0"
lexers = "0.1.4"
unicode-segmentation = "1.12.0"
chrono = "0.4.42"
url = "2.5.7"
pkg-version = "1.0.0"
regex = "1.11.2"
hexdump = "0.1.2"
# For formatting numbers
formato = "0.3.0"
# For formatting integers
english-numbers = "0.3.3"
italian_numbers = "1.0.0"

# This is for the forest tree implementation
#generational-arena = "0.2"

[dev-dependencies]
criterion = "0.7.0"
encoding_rs = "0.8.35"
encoding_rs_io = "0.1.7"
earleybird = { git = "https://github.com/mdubinko/earleybird.git" }
indextree = "4.7.4"