xml-rs
An XML library in pure Rust
1.0.0
137M downloads/mo
#662 most downloaded on crates.io
kornelski/xml-rs
What this package is like to depend on
Last release 17 days 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
2 releases in the last 12 months
see the full history below
Release timeline
80 releases · Dec 2014 to Aug 2026Releases
latest 60 of 80-
1.0.025 Aug 2025Release notes
Open source →- Added
Doctypeevent - Marked structs as
#[non_exhaustive] - Merged
ParserConfig2back intoParserConfig - Added option to the writer to pass through XML markup unmodified
xml-analyzebinary has been moved to examples- Writer escapes
--in comments and]]>in CDATA
- Added
-
1.0.0-rc.211 Jul 2025 pre-release withdrawnNothing published for this version
-
0.8.2906 Aug 2026Nothing published for this version
-
0.8.2827 Oct 2025Nothing published for this version
-
0.8.2709 Jul 2025 -
0.8.2609 Apr 2025 -
0.8.2507 Jan 2025Release notes
Open source →TryFromfor converting from reader to writer events, to make.as_writer_event()more discoverable.
-
0.8.2403 Dec 2024Release notes
Open source →- Fixed reporting of line/column position of CDATA when trimming whitespace
-
0.8.2306 Nov 2024Release notes
Open source →- StartDocument event will consistently use uppercase "UTF-8" name for encoding when the document did not declare it expicitly, but beware that documents can still use lowercase encoding names, so you must always use case-insensitive comparisons.
-
0.8.2209 Sep 2024Release notes
Open source →- Ability to retrieve the whole DOCTYPE. For backwards compatibility, it's a getter on the reader, not an event.
-
0.8.2105 Aug 2024 -
0.8.2031 Mar 2024 -
0.8.1923 Sep 2023 withdrawn -
0.8.1808 Sep 2023 withdrawn -
0.8.1704 Sep 2023 withdrawn -
0.8.1619 Jul 2023 withdrawn -
0.8.1502 Jul 2023 withdrawn -
0.8.15-cvss-cries-wolf13 Jun 2023 pre-release withdrawnNothing published for this version
-
0.8.1402 Jun 2023 withdrawn -
0.8.1322 May 2023 withdrawn -
0.8.1222 May 2023 withdrawnRelease notes
Open source →- Improved conformance of parsing invalid codepoints, XML prolog
- Reduced number of allocations
-
0.8.1115 May 2023 withdrawnRelease notes
Open source →- Improved conformance of PI
- Forbidden invalid multiple root elements, unless an option allowing them is enabled.
-
0.8.1011 May 2023 withdrawn -
0.8.909 May 2023 withdrawnRelease notes
Open source →- Added support for UTF-16 and ASCII
- Fixed CDATA parsing
- Added PE entities parsing
-
0.8.808 May 2023 withdrawnRelease notes
Open source →- Added recursive entity expansion (with length protection)
- Expanded parsing of DTD
-
0.8.706 May 2023 withdrawn -
0.8.606 May 2023 withdrawnRelease notes
Open source →- Fixed parsing of incorrectly nested comments and processing instructions
-
0.8.504 May 2023 withdrawn -
0.8.429 Jul 2021Release notes
Open source →- Fixed recognition of
?>,]]>and/>tokens as characters. - Fixed writer output operations to use
write_allto ensure that the data is written fully. - The document declaration is now written before any characters automatically.
- Fixed recognition of
-
0.8.327 Apr 2020 withdrawnRelease notes
Open source →- Added a new parser option,
ignore_root_level_whitespace, which makes the parser skip emitting whitespace events outside of the root element when set totrue. This helps with certain tasks like canonicalization.
- Added a new parser option,
-
0.8.206 Apr 2020 withdrawnRelease notes
Open source →- Added a new parser option,
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. - Added a new emitter option,
pad_self_closing, which determines the style of the self-closing elements when they are emitted:<a />(true) vs<a/>(false).
- Added a new parser option,
-
0.8.131 Mar 2020 withdrawnRelease notes
Open source →- Fixed various issues with tests introduced by updates in Rust.
- Adjusted the lexer to ignore contents of the
<!DOCTYPE>tag. - Removed unnecessary unsafety in tests.
- Added tests for doc comments in the readme file.
- Switched to GitHub Actions from Travis CI.
-
0.8.016 May 2018 withdrawnRelease notes
Open source →- Same as 0.7.1, with 0.7.1 being yanked because of the incorrect semver bump.
-
0.7.116 May 2018 withdrawnRelease notes
Open source →- Removed dependency on bitflags.
- Added the
XmlWriter::inner_mut()method. - Fixed some rustdoc warnings.
-
0.7.015 Oct 2017 withdrawnRelease notes
Open source →- Same as 0.6.2, with 0.6.2 being yanked because of the incompatible bump of minimum required version of rustc.
-
0.6.210 Oct 2017 withdrawn -
0.6.123 Jul 2017 withdrawnRelease notes
Open source →- Fixed the writer to escape some special characters when writing attribute values.
-
0.6.001 Jun 2017 withdrawnRelease notes
Open source →- Changed the target type of extra entities from
chartoString. This is an incompatible change.
- Changed the target type of extra entities from
-
0.5.001 Jun 2017 withdrawnRelease notes
Open source →- Added support for ignoring EOF errors in order to read documents from streams incrementally.
- Bumped
bitflagsto 0.9.
-
0.4.103 Mar 2017 withdrawn -
0.4.025 Feb 2017 withdrawnRelease notes
Open source →- Bumped version number, since changes introduced in 0.3.7 break backwards compatibility.
-
0.3.821 Feb 2017 withdrawnRelease notes
Open source →- Fixed a problem introduced in 0.3.7 with entities in attributes causing parsing errors.
-
0.3.721 Feb 2017 withdrawnRelease notes
Open source →- Fixed the problem with parsing non-whitespace character entities as whitespace (issue #140).
- Added support for configuring custom entities in the parser configuration.
-
0.3.613 Feb 2017 withdrawnRelease notes
Open source →- Added an
Errorimplementation forEmitterError. - Fixed escaping of strings with multi-byte code points.
- Added an
-
0.3.501 Dec 2016 withdrawn -
0.3.416 May 2016 withdrawnNothing published for this version
-
0.3.315 May 2016 withdrawn -
0.3.205 May 2016 withdrawnRelease notes
Open source →- Added
From<io::Error>forxml::reader::Error, which improves usability of working with parsing errors.
- Added
-
0.3.104 May 2016 withdrawn -
0.3.004 Jan 2016 withdrawnRelease notes
Open source →- Changed error handling in
EventReader- now I/O errors are properly bubbled up from the lexer.
- Changed error handling in
-
0.2.404 Jan 2016 withdrawnRelease notes
Open source →- Fixed #112 - incorrect handling of namespace redefinitions when writing a document.
-
0.2.304 Jan 2016 withdrawn -
0.2.221 Oct 2015 withdrawnRelease notes
Open source →- Using
joininstead of the deprecatedconnect. - Added a simple XML analyzer program which demonstrates library usage and can be used to check XML documents for well-formedness.
- Fixed incorrect handling of unqualified attribute names (#107).
- Added this changelog.
- Using
-
0.2.130 Sep 2015 withdrawn -
0.2.029 Sep 2015 withdrawnRelease notes
Open source →- Major update, includes proper document writing support and significant architecture changes.
-
0.1.2626 Aug 2015 withdrawnNothing published for this version
-
0.1.2514 May 2015 withdrawnNothing published for this version
-
0.1.2424 Apr 2015 withdrawnNothing published for this version
-
0.1.2303 Apr 2015 withdrawnNothing published for this version
-
0.1.2225 Mar 2015 withdrawnNothing published for this version