# spider-markup5ever
A `Send`-friendly fork of [`markup5ever`](https://github.com/servo/html5ever) for high-concurrency HTML parsing.
[](https://crates.io/crates/spider-markup5ever)
## Why this fork?
The only change from upstream is that this crate depends on [`spider-tendril`](https://github.com/spider-rs/tendril) instead of `tendril`. `spider-tendril` flips `Tendril<F, A>`'s default atomicity from `NonAtomic` to `Atomic`, making `StrTendril` `Send + Sync` by default. As a result, every type defined in `markup5ever` that holds a tendril (`Attribute`, `BufferQueue`, `Doctype`, etc.) is now `Send` — which lets `html5ever`'s `Tokenizer`, `TreeBuilder`, and `Parser` cross thread boundaries.
The source code, public API, and behavior are otherwise identical to upstream.
## Use
```toml
[dependencies]
spider-markup5ever = "0.39"
```
```rust
use markup5ever::{Attribute, QualName, ...};
```
The library still imports as `markup5ever`, so existing code requires no changes — only the dependency line in `Cargo.toml` needs to swap.
Pair with [`spider-html5ever`](https://github.com/spider-rs/html5ever) for the full Send-able parser stack.
## License
Licensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or [MIT license](LICENSE-MIT) at your option, matching the upstream `markup5ever` license.