quick-xml VS lol-html

Compare quick-xml vs lol-html and see what are their differences.

lol-html

Low output latency streaming HTML parser/rewriter with CSS selector-based API (by cloudflare)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
quick-xml lol-html
4 8
1,112 1,416
- 1.8%
9.1 5.7
8 days ago 3 months ago
Rust Rust
MIT License BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

quick-xml

Posts with mentions or reviews of quick-xml. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-09.
  • What are the scenarios where "Rewrite it in Rust" didn't meet your expectations or couldn't be successfully implemented?
    16 projects | /r/rust | 9 Jun 2023
    Exactly the same experience. In particular I ran into the issue that the only "ergonomic" API (that doesn't require hand-writing a parser) uses serde derive macros, but quick_xml doesn't handle namespaces. After about a day of this I stopped bike-shedding and just used lxml in Python. It works fine (and I have a large XML file, ~2.4Gb).
  • Fastest XML node parsing library in Rust
    2 projects | /r/rust | 8 Apr 2023
    You could try quick-xml.
  • Ask HN: A fast, Rust HTML parser that works?
    4 projects | news.ycombinator.com | 23 Feb 2023
    So I'm doing some web scraping in Rust, and so I will need to parse HTML. [scraper](https://docs.rs/scraper/latest/scraper/) (which uses [html5ever](https://github.com/servo/html5ever)) is doing fine except that it's the bottleneck of my application.

    So I need a faster parser. I've tried [tl](https://docs.rs/tl/latest/tl/) which would've been perfect except that it doesn't actually work on the HTML I have. When I try to `query_selector` the elements I need, it returns nothing.

    [Kuchiki](https://docs.rs/kuchiki/latest/kuchiki/) is abandonded.

    I couldn't figure out how to get [lol-html](https://github.com/cloudflare/lol-html) to work for me (it's designed for re-writing HTML, whatever that means). It doesn't seem to have an API to extract the inner text of an element.

    [html5gum](https://github.com/untitaker/html5gum) seems to be just an HTML tokenizer, or otherwise just too low-level. I have not yet tried [quick-xml](https://github.com/tafia/quick-xml/) but judging from the README, it's pretty low-level too. I mean, if these are the only options left then I will try them. Otherwise, I would love to use a parser that's faster but as ergonomic as `scraper` or `tl`.

    At this point, I would be happy with an Lxml bridge/port of some sort. I don't need to mutate HTML, just parse and read data from it.

  • Hey Rustaceans! Got an easy question? Ask here (41/2021)!
    5 projects | /r/rust | 11 Oct 2021
    This is not directly rust related, but I wanted to create some Excel document generator (and reader) library and was wondering if there are good resources available. In my limited research I tinkered with creating small documents, extracting their contents and looking at the xml inside. I‘m able to generate the same xmls using quick-xml.

lol-html

Posts with mentions or reviews of lol-html. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-23.
  • Ask HN: A fast, Rust HTML parser that works?
    4 projects | news.ycombinator.com | 23 Feb 2023
    So I'm doing some web scraping in Rust, and so I will need to parse HTML. [scraper](https://docs.rs/scraper/latest/scraper/) (which uses [html5ever](https://github.com/servo/html5ever)) is doing fine except that it's the bottleneck of my application.

    So I need a faster parser. I've tried [tl](https://docs.rs/tl/latest/tl/) which would've been perfect except that it doesn't actually work on the HTML I have. When I try to `query_selector` the elements I need, it returns nothing.

    [Kuchiki](https://docs.rs/kuchiki/latest/kuchiki/) is abandonded.

    I couldn't figure out how to get [lol-html](https://github.com/cloudflare/lol-html) to work for me (it's designed for re-writing HTML, whatever that means). It doesn't seem to have an API to extract the inner text of an element.

    [html5gum](https://github.com/untitaker/html5gum) seems to be just an HTML tokenizer, or otherwise just too low-level. I have not yet tried [quick-xml](https://github.com/tafia/quick-xml/) but judging from the README, it's pretty low-level too. I mean, if these are the only options left then I will try them. Otherwise, I would love to use a parser that's faster but as ergonomic as `scraper` or `tl`.

    At this point, I would be happy with an Lxml bridge/port of some sort. I don't need to mutate HTML, just parse and read data from it.

  • How much Rust work is actually going on at Cloudflare?
    2 projects | /r/rust | 15 Jan 2023
    I'm also in the Workers org but I have had a bit of interaction with Rust. There's some Rust in the Workers runtime using lol-html for HTMLRewriter as well as some tooling and there's the full blown workers-rs framework that I work on, but that's about it for the Rust I work on regularly.
  • Is there a library for manipulating HTML?
    3 projects | /r/rust | 17 Dec 2022
  • pup: Parsing HTML at the Command Line
    7 projects | news.ycombinator.com | 30 Nov 2022
  • Texting Robots: Taming robots.txt with Rust and 34 million tests
    4 projects | /r/rust | 28 Mar 2022
    Thanks again and happy to answer any questions! My current unreleased Rust projects include a web crawler that uses Tokio + Tokio Console + Reqwest with this crate for robots.txt and a fast text extraction library using lol-html that I am planning to sprinkle with some minimal ML to get Readability.js style intelligent extraction (with training in Python). See Fathom for an example of the ML approach I'll likely take.
  • Like JQ, but for HTML
    21 projects | news.ycombinator.com | 7 Sep 2021
    I’d like to see a tool using lol-html [0] and their CSS selector API as a streaming HTML editor.

    [0] https://github.com/cloudflare/lol-html

  • Things you can’t do in Rust (and what to do instead)
    6 projects | news.ycombinator.com | 15 May 2021
  • Problems with building a backend app in Rust in 2020
    2 projects | /r/rust | 21 Dec 2020
    Cloudflare has open sourced lol-html, a "Low output latency streaming HTML parser/rewriter with CSS selector-based API". Is that what you are looking for?

What are some alternatives?

When comparing quick-xml and lol-html you can also consider the following projects:

xml-rs - An XML library in Rust

actor-rust-scraper - Experimental scraper in Rust suited for running locally or on the Apify platform. Inspired by Apify SDK.

crates.io-index - Registry index for crates.io

tq - Perform a lookup by CSS selector on an HTML input

serde-gura - Strongly typed Gura library for Rust

yq - Command-line YAML, XML, TOML processor - jq wrapper for YAML/XML/TOML documents

roxmltree - Represent an XML document as a read-only tree.

tools - all-in collection of productivity scripts, CLI tools, utility libraries, fuse filesystems, and also some stuff

vtkio - Visualization ToolKit (VTK) file parser and writer

hq - lightweight command line HTML processor using CSS and XPath selectors

tonic-example - Minimal example of using Tonic for client/server gRPC

cargo-expand - Subcommand to show result of macro expansion