NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #684 most downloaded on crates.io
An XML library in pure Rust
Last release 2 months ago
06 Aug 2026
Release timing varies
gaps range from 4 weeks to 9 months
Most releases are documented
notes for 10 of 12 stable releases
68 versions withdrawn
withdrawn after publishing
12 years old
80 releases · first in 2014
Marked structs as #[non_exhaustive]
Doctype event#[non_exhaustive]ParserConfig2 back into ParserConfigxml-analyze binary has been moved to examples-- in comments and ]]> in CDATANothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Added detection of invalid <? in attributes
<? in attributesFixed buffering of files with a broken UTF-16 encoding
TryFrom for converting from reader to writer events, to make .as_writer_event() more discoverable.
TryFrom for converting from reader to writer events, to make .as_writer_event() more discoverable.Fixed reporting of line/column position of CDATA when trimming whitespace
StartDocument event will consistently use uppercase "UTF-8" name for encoding when the document did not declare it expicitly, but beware that document
Ability to retrieve the whole DOCTYPE. For backwards compatibility, it's a getter on the reader, not an event.
* Added EventWriter::inner_ref * ~15% performance improvement
EventWriter::inner_refFixed escaping of literal ]]> in CDATA
]]> in CDATAFixed whitespace event when parsing DOCTYPE with internal subset
Option to tolerate invalid entities and chars
Added configuration for document size/complexity limits.
Fixed error line numbers when parsing CDATA as characters
Improved speed of parsing elements with huge number of arguments
Nothing published for this version
Fixed error line numbers when ignoring comments
* Backward-compatibility fix
Improved conformance of parsing invalid codepoints, XML prolog
Forbidden invalid multiple root elements, unless an option allowing them is enabled.
Internal error handling improvements
Added support for UTF-16 and ASCII
Added recursive entity expansion (with length protection)
Basic parsing of DTD internal subset
Fixed parsing of incorrectly nested comments and processing instructions
Updated source code to edition 2018 and fixed/updated some Rust idioms.
Fixed recognition of ?>, ]]> and /> tokens as characters.
?>, ]]> and /> tokens as characters.write_all to ensure that the data
is written fully.Added a new parser option, ignore_root_level_whitespace, which makes the parser skip emitting whitespace events outside of the root element when set t
ignore_root_level_whitespace, which makes the parser
skip emitting whitespace events outside of the root element when set to true.
This helps with certain tasks like canonicalization.Added a new parser option, replace_unknown_entity_references, which allows to ignore invalid Unicode code points and replace them with a Unicode "repl
replace_unknown_entity_references, which allows to ignore
invalid Unicode code points and replace them with a Unicode "replacement character"
during parsing. This can be helpful to deal with e.g. UTF-16 surrogate pairs.pad_self_closing, which determines the style of the self-closing
elements when they are emitted: <a /> (true) vs <a/> (false).Fixed various issues with tests introduced by updates in Rust.
<!DOCTYPE> tag.Same as 0.7.1, with 0.7.1 being yanked because of the incorrect semver bump.
Removed dependency on bitflags.
XmlWriter::inner_mut() method.Same as 0.6.2, with 0.6.2 being yanked because of the incompatible bump of minimum required version of rustc.
* Bumped bitflags to 1.0.
bitflags to 1.0.Fixed the writer to escape some special characters when writing attribute values.
Changed the target type of extra entities from char to String. This is an incompatible change.
char to String. This is an incompatible
change.Added support for ignoring EOF errors in order to read documents from streams incrementally.
bitflags to 0.9.Added missing Debug implementation to xml::XmlEvent.
Debug implementation to xml::writer::XmlEvent.Bumped version number, since changes introduced in 0.3.7 break backwards compatibility.
Fixed a problem introduced in 0.3.7 with entities in attributes causing parsing errors.
Fixed the problem with parsing non-whitespace character entities as whitespace (issue #140).
Added an Error implementation for EmitterError.
Error implementation for EmitterError.Added Debug implementation for XmlVersion.
Debug implementation for XmlVersion.Nothing published for this version
* Updated bitflags to 0.7.
bitflags to 0.7.Added From for xml::Error, which improves usability of working with parsing errors.
From<io::Error> for xml::reader::Error, which improves usability of working with parsing errors.Bumped bitflags dependency to 0.4, some internal warning fixes.
bitflags dependency to 0.4, some internal warning fixes.Changed error handling in EventReader - now I/O errors are properly bubbled up from the lexer.
EventReader - now I/O errors are properly bubbled up from the lexer.Fixed #112 - incorrect handling of namespace redefinitions when writing a document.
Added into_inner() methods to EventReader and EventWriter.
into_inner() methods to EventReader and EventWriter.Using join instead of the deprecated connect.
join instead of the deprecated connect.Fixed #105 - incorrect handling of double dashes.
Major update, includes proper document writing support and significant architecture changes.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →