Update Rust crate quick-xml to 0.41.0#79
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
2 times, most recently
from
August 4, 2025 07:50
ef6a56d to
0e73a2f
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
2 times, most recently
from
August 24, 2025 12:39
3573f2a to
9c2d52e
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
from
September 25, 2025 20:47
9c2d52e to
0d812d4
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
from
November 11, 2025 20:13
0d812d4 to
462364f
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
from
January 11, 2026 20:47
462364f to
3e8dd80
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
2 times, most recently
from
February 20, 2026 18:45
00d19aa to
bdf4980
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
2 times, most recently
from
May 8, 2026 21:28
b4e4d95 to
77d406a
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
from
May 11, 2026 20:43
77d406a to
1ce95fd
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
from
May 15, 2026 21:52
1ce95fd to
a4f9878
Compare
renovate
Bot
force-pushed
the
renovate/quick-xml-0.x
branch
from
June 29, 2026 18:30
a4f9878 to
addcab1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.37.5→0.41.0Release Notes
tafia/quick-xml (quick-xml)
v0.41.0Compare Source
New Features
NsReader::resolver_mut()andNamespaceResolver::{max_declarations_per_element, set_max_declarations_per_element}.Bug Fixes
Attributes(and anything that iteratesBytesStart::attributes()with the default
with_checks(true)) no longer takes O(N²) time on a starttag with a large number of attributes. Small tags keep the previous linear
scan; larger ones switch to a 64-bit hash pre-filter, so the whole tag is
O(N). The exact
AttrError::Duplicated(new, prev)positions are unchanged.NamespaceResolver::push(and hence everyNsReaderStart/Emptyevent) now rejects a start tag that declares more than
DEFAULT_MAX_DECLARATIONS_PER_ELEMENT(256)xmlns/xmlns:*namespacebindings, returning the new
NamespaceError::TooManyDeclarations. Previouslypushallocated oneNamespaceBindingper declaration with no upper bound,before the event was returned to the caller, so an
NsReaderconsumer couldnot bound its memory exposure on untrusted input. The limit is configurable
via
NamespaceResolver::set_max_declarations_per_element(useusize::MAXto disable).
v0.40.1Compare Source
Bug Fixes
unreachable!()panic in the serde deserializer when a DOCTYPEdeclaration appears between two text runs inside an element (e.g.
<a>x<!DOCTYPE y>z</a>). The DOCTYPE used to breakdrain_text'sconsecutive-text merge, so two
DeEvent::Textevents reachedread_textand tripped its "Cannot be two consequent Text events"invariant. DOCTYPE is now treated as transparent during text drain —
it still goes through the entity resolver, but the surrounding text
is merged into one run. Discovered via libFuzzer on a real-world
SAML deserializer harness.
Misc Changes
v0.40.0Compare Source
MSRV bumped to 1.79.
Now
quick-xmlsupports the UTF-16 encoded documents. See the newDecodingReadertype.New Features
#956: Add
DecodingReader, aBufReadadapter that auto-detects encodingfrom BOM or XML declaration and transcodes to UTF-8. Enabled by the
encodingfeature.#938: Add new enumeration
XmlVersionand typified getterBytesDecl::xml_version().#938: Add new error variant
IllFormedError::UnknownVersion.#371: Add new error variant
EscapeError::TooManyNestedEntities.#371: Improved compliance with the XML attribute value normalization process by adding
Attribute::normalized_value()Attribute::normalized_value_with()Attribute::decoded_and_normalized_value()Attribute::decoded_and_normalized_value_with()which ought to be used in place of deprecated
Attribute::unescape_value()Attribute::unescape_value_with()Attribute::decode_and_unescape_value()Attribute::decode_and_unescape_value_with()Deprecated functions now behaves the same as newly added.
Bug Fixes
Deserializerwhen parse XML 1.0 documents.Previously XML 1.1. rules was applied.
Misc Changes
.prefixes(),.resolve(),.resolve_attribute(), and.resolve_element()of
NsReader. Use.resolver().<...>methods instead.BytesText::xml_content,BytesCData::xml_contentandBytesRef::xml_contentaccepts
XmlVersionparameter to apply correct EOL normalization rules.read_text()now returnsBytesTextwhich allows you to get the content withproperly normalized EOLs. To get the previous behavior use
.read_text().decode()?.v0.39.4Compare Source
Bug Fixes
is split across
BufReaderchunks. As with #950, the returnedEvent::DocTypemay contain the malformed DTD; this fix only ensures thatthe parser does not panic.
<followedby 9+ bytes of unknown markup inside a DTD internal subset. Same disposition
as #957 / #950: parser must not panic; DTD validity reporting is a future
improvement.
v0.39.3Compare Source
Bug Fixes
Note, that currently we do not check the validity of DTD, so the returned
Event::DocTypemay contain the malformed DTD.
v0.39.2Compare Source
New Features
read_text_into()andread_text_into_async().Bug Fixes
<is the last in the
BufReadinternal buffer. This is the regression from #936.v0.39.1Compare Source
New Features
NamespaceResolver::set_levelwhich may be helpful in some circumstances.Bug Fixes
NsReader::read_to_endNsReader::read_to_end_into,NsReader::read_to_end_into_asyncandNsReader::read_text.The scope started by a start element was not ended after that call.
.read_text()when it is called after readingTextorGeneralRefevent.v0.39.0Compare Source
Added a way to configure
Writer. Now all configuration is contained in thewriter::Configstruct and can be applied at once. When
serde-typesfeature is enabled, configuration is serializable.New Features
config()andconfig_mut()to inspect and change the writer configuration./>in self-closed tags for maximum compatibility withXHTML.
empty_element_handling()as a more powerful alternative toexpand_empty_elements()in
Serializer.impl_deserialize_for_internally_tagged_enum!macrowhich is required if you enum variants contains
$valuefields.Bug Fixes
Misc Changes
serdeversion from 1.0.139 to 1.0.180..prefixes(),.resolve(),.resolve_attribute(), and.resolve_element()of
NsReader. Use.resolver().bindings()and.resolver().resolve()methods instead.Attributes::has_nilnow acceptsNamespaceResolverinstead ofReader<R>.SyntaxError::UnclosedPIOrXmlDeclintoUnclosedPIandUnclosedXmlDeclfor more precise error reporting.Parser::eof_errornow takes&selfand content&[u8]parameters.SyntaxError::UnclosedTagintoUnclosedTag,UnclosedSingleQuotedAttributeValueandUnclosedDoubleQuotedAttributeValuefor more precise error reporting.v0.38.4Compare Source
New Features
Serializer.Everywhere where the text node may be created, a CDATA section(s) could be produced instead.
See the new
Serializer::text_format()method.Bug Fixes
<int> 42 </int>. That space characters are usually indent added during serialization andother XML serialization libraries trims them
Misc Changes
Serializerv0.38.3Compare Source
Bug Fixes
\rXEOL sequences whereXis a char which isUTF-8 encoded as [c2 xx], except [c2 85].
Misc Changes
xml10_content()andxml11_content()methods which behaves the same ashtml_content()andxml_content()methods, but express intention more clearly.v0.38.2Compare Source
New Features
FusedIteratorforNamespaceBindingsIter.NamespaceResolverpublic.NsReader::resolver()for access to namespace resolver.Misc Changes
PrefixItertoNamespaceBindingsIter.v0.38.1Compare Source
Important changes
To get text in events according to the XML specification (normalized EOLs) use the
new methods
xml_content()instead ofdecode().Deserializeruses new methodautomatically.
New Features
Deserializerfrom existingNsReader:Deserializer::borrowingDeserializer::borrowing_with_resolverDeserializer::bufferingDeserializer::buffering_with_resolver$valuefields. The struct name willbe used as a tag name. Previously only enums was allowed there.
BytesText::xml_content,BytesCData::xml_contentandBytesRef::xml_contentmethods which returns XML EOL normalized strings.
BytesText::html_content,BytesCData::html_contentandBytesRef::html_contentmethods which returns HTML EOL normalized strings.
Bug Fixes
Deserializer.list of values and attribute requires decoding.
v0.38.0Compare Source
Significant changes
Now references to entities (as predefined, such as
<, as user-defined) reported as a newEvent::GeneralRef.Caller can parse the content of the entity and stream events from it as it is required by the
XML specification. See the updated
custom_entitiesexample!Implement whitespace behavior in the standard in
Deserializer, which says string primitivetypes should preserve whitespace, while all other primitives have collapse behavior.
New Features
Attributes::into_map_access(&str)andAttributes::into_deserializer()whenserializefeature is enabled. This will allow do deserialize serde types right from attributes. Both methods
returns the same type which implements serde's
DeserializerandMapAccesstraits.Event::GeneralRefwith content of general entity.allow_dangling_ampwhich allows to havea
¬ followed by;in the textual data which is required for some applicationsfor compatibility reasons.
quick_xml::de::Textto access text with trimmed spacesBug Fixes
$textand$valuespecial fields in one struct. Previouslyany text will be recognized as
$valuefield even when$textfield is also presented.xmlprefix from the attributes when map them to struct fields inDeserializer.Misc Changes
From<QName<'a>> for BytesStart<'a>because nowBytesStartstores theencoding in which its data is encoded, but
QNameis a simple wrapper around byte slice.BytesText::unescapeandBytesText::unescape_withreplaced byBytesText::decode.Now Text events does not contain escaped parts which are reported as
Event::GeneralRef.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.