rusty_xml — libxml2 Remade In Rust, About Twice As Fast
rusty_xml is libxml2 remade in Rust: memory-safe XML parse, tree, SAX, reader, writer, XPath, and validation — about twice as fast, and no C.

XML is not dead. It is Office. It is SVG. It is every RSS feed that still matters, every SOAP endpoint that never got the memo, and the OOXML zip sitting under a .docx. The parser the industry reached for was libxml2 — decades of C, a CVE cadence that never got bored, and a build that wants a system library on every target.
rusty_xml is libxml2 remade: parse, tree, SAX, reader, writer, XPath, validation, about twice as fast, no C. Memory-safe XML is the point. RAG Converter uses it for Office files so a document never boarded a C parser on the way to embeddings. The catalog is Remade with Rust. The thesis is rebuilding the foundation of the internet. This article is the XML stack.
Why rusty_xml Is Libxml2 Remade For Memory-Safe XML
A crafted XML file is a billion laughs, an entity expansion, a use-after-free in a namespace walker. That is the CVE class the NIST Secure Software Development Framework keeps pointing at. libxml2 remade means the walker is Rust. Memory-safe XML means the entity bomb is an error, not a heap story.
A crate that calls libxml2 over FFI has not remade libxml2. rusty_xml is the remake. Twice as fast is the Incentive. No C is the deploy.
Trust, Security, and Incentive fail when "we parsed the invoice" still means a C library from 1999. Trust fails when the Office file left the device. Security fails when the parser is libxml2. Incentive fails when the safer path is slower. rusty_xml is how those three primitives apply to angle brackets.
What rusty_xml Ships As Libxml2 Remade
github.com/Remade-With-Rust/rusty_xml is the source. The surface is the libxml2 surface people already have in their heads: a tree you can walk, SAX if you cannot afford the tree, a reader and a writer, XPath, validation. Memory-safe XML that only does "a little DOM" is a toy. libxml2 remade has to do the job.
rusty_xml Parse, Tree, SAX, Reader, Writer
Parse is the door. Tree is the document you mutate. SAX is the stream when the file is huge. Reader and writer are the incremental APIs. rusty_xml ships all of them. That is libxml2 remade, not a subset with a README apology.
Memory-safe XML on this surface is how a WASM tab opens a .xlsx without a C toolchain. RAG Converter already does that. AI on the edge starts with bytes. Office bytes are XML in a zip.
XPath And Validation In rusty_xml
XPath is how real systems find the node. Validation is how they refuse the rest. libxml2 remade without those two is a blog parser. rusty_xml includes both so a pipeline can say "this is the invoice schema" and mean it.
The Electronic Frontier Foundation has documented how "the document stayed on device" claims collapse when the helper still uploads to a hosted parser. rusty_xml is how memory-safe XML stays on device and still does XPath.
Twice As Fast, Used By RAG Converter
About twice as fast as libxml2 is the measured claim. That is the Incentive that makes the remake stick. RAG Converter uses rusty_xml for Office files — the RAG path that keeps the corpus local. Mercury is the speech sibling. Carmenta is the OCR sibling. rusty_xml is the document sibling.
The FTC keeps catching products that collected more than they needed to "make search work." Memory-safe XML that never left the tab shrinks that surface.
How rusty_xml Feeds The Distributed Cloud
A distributed cloud that cannot open Office on the node uploads the contract. rusty_xml is libxml2 remade so the node reads it.
Trust The Document, Secure The Parser
Trust is a .docx that stayed yours. Security is memory-safe XML — compile-time refusal of the overflow class in a format that exists to nest. Incentive is libxml2 remade at ~2×, permissively licensed. The NIST Zero Trust Architecture tells operators to stop trusting the perimeter. rusty_xml is how you stop trusting the entity expander as well.
Deputy vaults the crate. The Freedom Guide is the personal-data path. Office files are personal data. rusty_xml is why they do not need a C parser in a data center.
Disco Party And Era-Shaped Documents
Disco Party places work products on the mesh. Those products are often XML. Era 1 stores them. Era 3 is work and money — invoices, statements, the boring files that run a life. rusty_xml is libxml2 remade for that boredom.
Era 4 is a home companion that reads a label. Sometimes the label is a screenshot. Sometimes it is a downloaded form. Memory-safe XML covers the form.
The Catalog Entry For rusty_xml
Source is github.com/Remade-With-Rust/rusty_xml. Cards and shipping status live on the Remade with Rust catalog. The mesh this parser feeds is what a distributed cloud is and the Disco Party. Digital Freedom is Trust, Security, and Incentive.
If you came from the Learn index looking for memory-safe XML, this is the crate. If you came from libxml2, this is the remake — about twice as fast, and no C. The internet you want to own still speaks Office. rusty_xml is how that sentence stays true without the C.
Regex without Oniguruma's C is rusty_expressions. The compressor beside this parser is rusty_zstd. Reading those documents on-device is Carmenta.

