NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #714 most downloaded on crates.io
Pull-based, zero-allocation XML parser.
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 1.3 years
Nearly every release is documented
notes for 22 of 23 stable releases
1 version withdrawn
withdrawn after publishing
9 years old
24 releases · first in 2017
Token::span, Tokenizer::stream and allow cloning of Tokenizer. Thanks to @krtab.
Token::span, Tokenizer::stream and allow cloning of Tokenizer.
Thanks to @krtab.is_xml_char function. Makes parsing 5-10% faster.
Thanks to @Simon-Martens.Do no use recursive calls during parsing. Could lead to stack overflow on some input.
Stream::consume_reference.One column per quarter.
Do not expand predefined references in Stream::consume_reference. Thanks to @Jesse-Bakker.
Stream::consume_reference.
Thanks to @Jesse-Bakker.Documentation fixes by @kneasle.
DtdEnd token parsing when ] and > are separated by a whitespace.Allow processing instruction before DTD.
### Fixed - Allow comments before DTD.
Use Tokenizer::from_fragment instead of Tokenizer::enable_fragment_mode.
Error enum.Tokenizer::from_fragment instead of Tokenizer::enable_fragment_mode.TokenType.]]> is no longer allowed inside a Text node.
]]> is no longer allowed inside a Text node.StreamError::NonXmlChar will occur.- at the end of a comment. <!--a---> is an error now.StreamError::InvalidQuote and StreamError::InvalidSpace signature changed.no_std support thanks to hugwijst.
no_std support thanks to hugwijst.StreamError::InvalidString doesn't store an actual string now.StreamError::InvalidChar signature changed.
ByteStream and Stream.StreamError::InvalidChar signature changed.StreamError::InvalidChar was split into InvalidChar and InvalidCharMultiple.Check for NameStartChar during qualified name parsing.
E.g. <-p> is an invalid tag name from now.
Qualified name with multiple : is an error now.
]> is a valid text/CharData now. Previously it was parsed as DoctypeEnd.
StreamError::InvalidAttributeValue. StreamError::InvalidChar will be emitted instead.span field to all Token variants, which contains a whole token span in bytes.
span field to all Token variants, which contains a whole token span in bytes.Stream::try_consume_byte.All Token variants are structs now and not tuples.
StrSpan contains an actual string span an not only region now.
So we can use a non-panic and zero-cost StrSpan::as_str instead
of StrSpan::to_str, that was performing slicing each time.
Split Stream into ByteStream and Stream.
Stream::skip_spaces will parse only ASCII whitespace now.
Rename StrSpan::to_str into StrSpan::as_str.
Rename Reference::EntityRef into Reference::Entity.
Rename Reference::CharRef into Reference::Char.
StrSpan::from_substr and StrSpan::slice_region are private now.
Token::Whitespaces. Will be parsed as Token::Text.Stream::curr_char.Stream::is_curr_byte_eq.Stream::consume_either.Stream::skip_ascii_spaces. Use Stream::skip_spaces instead.StrSpan::trim.StrSpan::len.StrSpan::full_len.StrSpan::as_bytes.Changed the crate category in the Cargo.toml
Rename Stream::gen_error_pos into Stream::gen_text_pos.
Error::pos().Stream::gen_error_pos into Stream::gen_text_pos.Stream::gen_error_pos_from into Stream::gen_text_pos_from.Stream::gen_text_pos speed up.TextPos is Unicode aware now.< inside an attribute value is an error now.
< inside an attribute value is an error now.Token::Declaration represents standalone as bool now.### Added - Stream::curr_byte_unchecked. ### Fixed - UTF-8 BOM processing.
Stream::curr_byte_unchecked.Reference::EntityRef contains &str and not StrSpan now.
Reference::EntityRef contains &str and not StrSpan now.Stream::try_consume_char_reference into try_consume_reference.
And it will return Reference and not char now.Tokenizer::set_fragment_mode into enable_fragment_mode.ErrorPos into TextPos.TextPos calculation via Stream::gen_error_pos.TextUnescape and XmlSpace because useless.Stream::consume_reference will return only InvalidReference error from now.
StreamError::InvalidChar.StreamError::InvalidSpace.StreamError::InvalidString.Stream::consume_reference will return only InvalidReference error from now.Error::InvalidTokenWithCause merged into Error::InvalidToken.Stream::gen_error_pos_from does not require mut self from now.StreamError::InvalidChar requires Vec<u8> and not String from now.ErrorPos uses u32 and not usize from now.failure dependency.log dependency.An ability to parse an XML fragment.
Relicense from MIT to MIT/Apache-2.0.
FromSpan trait.from_str and from_span methods are removed. Use the From trait instead.Use failure instead of error-chain.
failure instead of error-chain.TokenType is properly public now.ChainedErrorBreaking. Token::ElementStart and Token::Attribute contains prefix and local part of the qualified name now.
Token::ElementStart and Token::Attribute contains prefix
and local part of the qualified name now.Small performance optimizations.
Stream::skip_ascii_spaces.[Unreleased]: https://github.com/RazrFalcon/xmlparser/compare/v0.13.6...HEAD [0.13.6]: https://github.com/RazrFalcon/xmlparser/compare/v0.13.5...v0.13
log 0.3 -> 0.4Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →