NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #293 most downloaded on crates.io
High performance xml reader and writer
Last release 1 months ago
22 Aug 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
11 years old
104 releases · first in 2016
feat: rename resolve_namespace into attribute_namespace
resolve_namespace into attribute_namespaceevent_namespace fnfix: Fix minor bug for parsing comment tag
feat: add BytesStart::{owned_name, borrowed_name}
One column per quarter.
BytesStart::{owned_name, borrowed_name}- refactor: bump dependencies - test: fix travis
feat: enable into_owned for all events
into_owned for all eventsfeat: rename BytesText fn to better clarify escape intents
feat: migrate from error-chain to failure
fix: overflow possibility when parsing Ascii codes
doc: add doc for attribute creation functions
fix: bound tests in read_bang fn.
read_bang fn.fix: escape was panicking at the 3rd character escaped.
perf: update to encoding_rs 0.7.0, supposedly faster for utf8
perf: use memchr crate and rewrite some loops with iterators
Reader doc in lib.rsfeat: escape Text events on write (breaking change)
feat: allow Writer to borrow Event (using AsRef )
Writer to borrow Event (using AsRef<Event>)fix: make the reader borrow the namespace buffer so it can be used repetitively
fix: fix Event::Text slice always starting at the beginning of the buffer
refactor bump encoding_rs to 0.6.6
refactor: remove from_ascii crate dependency
fix: {with,extend}_attributes usage
local_name functionfix: another overflow bug found with cargo-fuzz
fix: fix an overflow found with cargo-fuzz
Major refactoring. Breaks most of existing functionalities
Major refactoring. Breaks most of existing functionalities
XmlReader with a non allocating Reader (uses an external buffer)XmlnsReader iterator by a simpler Reader::read_namespaced_event functionUnescapedAttribute with a new Attribute struct with unescape functionsAsStr trait: user must use unescape_and_decode fns when necessary
(alternatively, run unescape and/or Reader::decode)Elements with several per event structs BytesStartXmlWriter to Writer and provide a way to write &[u8] directlyResultPos (user can still use Reader::buffer_position if needed)feat: apply default namespaces (xmlns="...") to unqualified elements
xmlns="...") to unqualified elements> in attribute valuesfeat: add into_unescaped_string
into_unescaped_string- feat: add read_text_unescaped - fix: fix tests
read_text_unescapedfix: fix attributes with = character in their value
= character in their valuefeat: set default to expand_empty_elements = true
expand_empty_elements = trueEmpty eventsNothing published for this version
test: add most tests from xml-rs crate
fix: do not write attributes on Event::End
Event::Endrefactor: code refactoring, split largest functions into smaller ones
Range instead of usizes in Element definitionfeat: add Clone to more structs
Clone to more structsrefactor: change from_str into impl From<&str>
from_str into impl From<&str>Event::DocType.check_comments to check for invalid double dashes (--) in commentsfeat: return more precise index when erroring
Attributes iterate ResultPos instead of Result&...; characters (.escaped_content and .escaped_attributes)feat: add XmlnsReader to iterate event and resolve namespaces!
XmlnsReader to iterate event and resolve namespaces!Element structure and design)feat/fix: add Event::PI to manage processing instructions (<?...?>)
Event::PI to manage processing instructions (<?...?>)feat: parse Event::Decl for xml declaration so we can have version, encoding ...
Event::Decl for xml declaration so we can have version, encoding ...position into buffer_position because it sometimes conflicted with Iterator::positionfeat: add buffer position when erroring to help debuging (return ResultPos instead of Result)
ResultPos instead of Result)feat: improve Element API with new, with_attributes, push_attribute
&[u8] and add a AsStr trait for conversionfeat: add XmlWriter to write/modify xmls
XmlWriter to write/modify xmlsAsRef<[u8]> when possible- test: add tests - feat: add with_check
with_checkNothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →