You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by ko...@apache.org on 2026/10/05 09:35:08 UTC
(opendal) branch main updated: chore(deps): update quick-xml from 0.41.0 to 0.42.0 (#8375)
This is an automated email from the ASF dual-hosted git repository.
koushiro pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git
The following commit(s) were added to refs/heads/main by this push:
new 417e06c5a chore(deps): update quick-xml from 0.41.0 to 0.42.0 (#8375)
417e06c5a is described below
commit 417e06c5a497f04886a24ceb60751e13afbf0230
Author: Qinxuan Chen <ko...@gmail.com>
AuthorDate: Mon Oct 5 17:35:00 2026 +0800
chore(deps): update quick-xml from 0.41.0 to 0.42.0 (#8375)
* chore(deps): update quick-xml from 0.41.0 to 0.42.0
* revert ruby cargo.lock
* fix fmt
---
bindings/python/docs/index.md | 2 ++
bindings/ruby/Cargo.lock | 34 +++++++++++-------
core/Cargo.lock | 78 ++++++++++++++++++++++------------------
core/Cargo.toml | 2 +-
core/services/webdav/src/core.rs | 27 +++++++-------
5 files changed, 81 insertions(+), 62 deletions(-)
diff --git a/bindings/python/docs/index.md b/bindings/python/docs/index.md
index 9993745e4..ab8c88fbf 100644
--- a/bindings/python/docs/index.md
+++ b/bindings/python/docs/index.md
@@ -174,10 +174,12 @@ Async API equivalent:
```python
import asyncio
+
async def main():
op = opendal.AsyncOperator("fs", root="/tmp")
await op.write("test.txt", b"Hello World")
print(await op.read("test.txt"))
+
asyncio.run(main())
```
diff --git a/bindings/ruby/Cargo.lock b/bindings/ruby/Cargo.lock
index 793016590..e6a98c833 100644
--- a/bindings/ruby/Cargo.lock
+++ b/bindings/ruby/Cargo.lock
@@ -1427,7 +1427,7 @@ dependencies = [
"log",
"md-5",
"percent-encoding",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-core",
"serde",
"serde_json",
@@ -1514,7 +1514,7 @@ dependencies = [
"log",
"opendal-core",
"opendal-service-azure-common",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-azure-storage",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -1534,7 +1534,7 @@ dependencies = [
"log",
"opendal-core",
"opendal-service-azure-common",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-azure-storage",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -1551,7 +1551,7 @@ dependencies = [
"log",
"opendal-core",
"opendal-service-azure-common",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-azure-storage",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -1574,7 +1574,7 @@ dependencies = [
"http",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-core",
"reqsign-file-read-tokio",
"reqsign-tencent-cos",
@@ -1603,7 +1603,7 @@ dependencies = [
"log",
"opendal-core",
"percent-encoding",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-core",
"reqsign-file-read-tokio",
"reqsign-google",
@@ -1661,7 +1661,7 @@ dependencies = [
"http",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-core",
"reqsign-file-read-tokio",
"reqsign-huaweicloud-obs",
@@ -1676,7 +1676,7 @@ dependencies = [
"http",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-aliyun-oss",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -1694,7 +1694,7 @@ dependencies = [
"log",
"md-5",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-aws-v4",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -1711,7 +1711,7 @@ dependencies = [
"http",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"serde",
]
@@ -1944,6 +1944,16 @@ dependencies = [
"serde",
]
+[[package]]
+name = "quick-xml"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
[[package]]
name = "quinn"
version = "0.11.11"
@@ -2212,7 +2222,7 @@ dependencies = [
"http",
"log",
"percent-encoding",
- "quick-xml",
+ "quick-xml 0.41.0",
"reqsign-core",
"rust-ini",
"serde",
@@ -2230,7 +2240,7 @@ dependencies = [
"bytes",
"http",
"log",
- "quick-xml",
+ "quick-xml 0.41.0",
"reqsign-aws-core",
"reqsign-core",
"serde",
diff --git a/core/Cargo.lock b/core/Cargo.lock
index e9cdd9568..352a9620b 100644
--- a/core/Cargo.lock
+++ b/core/Cargo.lock
@@ -992,7 +992,7 @@ dependencies = [
"bitflags 2.11.1",
"cexpr",
"clang-sys",
- "itertools 0.12.1",
+ "itertools 0.13.0",
"log",
"prettyplease",
"proc-macro2",
@@ -1540,7 +1540,7 @@ version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -2448,7 +2448,7 @@ dependencies = [
"libc",
"option-ext",
"redox_users",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -2648,7 +2648,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -4182,7 +4182,7 @@ dependencies = [
"libc",
"percent-encoding",
"pin-project-lite",
- "socket2 0.5.10",
+ "socket2 0.6.3",
"system-configuration",
"tokio",
"tower-service",
@@ -5534,7 +5534,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -5832,7 +5832,7 @@ dependencies = [
"md-5 0.11.0",
"percent-encoding",
"pretty_assertions",
- "quick-xml",
+ "quick-xml 0.42.0",
"rand 0.10.1",
"reqsign-core",
"serde",
@@ -6194,7 +6194,7 @@ dependencies = [
"opendal-core",
"opendal-service-azure-common",
"pretty_assertions",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-azure-storage",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -6216,7 +6216,7 @@ dependencies = [
"log",
"opendal-core",
"opendal-service-azure-common",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-azure-storage",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -6234,7 +6234,7 @@ dependencies = [
"log",
"opendal-core",
"opendal-service-azure-common",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-azure-storage",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -6305,7 +6305,7 @@ dependencies = [
"http 1.4.2",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-core",
"reqsign-file-read-tokio",
"reqsign-tencent-cos",
@@ -6438,7 +6438,7 @@ dependencies = [
"log",
"opendal-core",
"percent-encoding",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-core",
"reqsign-file-read-tokio",
"reqsign-google",
@@ -6726,7 +6726,7 @@ dependencies = [
"http 1.4.2",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-core",
"reqsign-file-read-tokio",
"reqsign-huaweicloud-obs",
@@ -6771,7 +6771,7 @@ dependencies = [
"log",
"opendal-core",
"pretty_assertions",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-aliyun-oss",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -6859,7 +6859,7 @@ dependencies = [
"md-5 0.11.0",
"opendal-core",
"pretty_assertions",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-aws-v4",
"reqsign-core",
"reqsign-file-read-tokio",
@@ -6943,7 +6943,7 @@ dependencies = [
"log",
"opendal-core",
"percent-encoding",
- "quick-xml",
+ "quick-xml 0.42.0",
"serde",
"serde_json",
"sha1 0.11.0",
@@ -6970,7 +6970,7 @@ dependencies = [
"bytes",
"http 1.4.2",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"reqsign-core",
"reqsign-file-read-tokio",
"reqsign-volcengine-tos",
@@ -6989,7 +6989,7 @@ dependencies = [
"log",
"md-5 0.11.0",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"serde",
"serde_json",
"sha1 0.11.0",
@@ -7018,7 +7018,7 @@ dependencies = [
"http 1.4.2",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"serde",
"serde_json",
"tokio",
@@ -7033,7 +7033,7 @@ dependencies = [
"http 1.4.2",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"serde",
"tokio",
]
@@ -7062,7 +7062,7 @@ dependencies = [
"http 1.4.2",
"log",
"opendal-core",
- "quick-xml",
+ "quick-xml 0.42.0",
"serde",
"serde_json",
"tokio",
@@ -7898,7 +7898,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7"
dependencies = [
"heck 0.5.0",
- "itertools 0.12.1",
+ "itertools 0.14.0",
"log",
"multimap",
"petgraph",
@@ -7932,7 +7932,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b"
dependencies = [
"anyhow",
- "itertools 0.12.1",
+ "itertools 0.14.0",
"proc-macro2",
"quote",
"syn 2.0.118",
@@ -8043,6 +8043,16 @@ dependencies = [
"serde",
]
+[[package]]
+name = "quick-xml"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
[[package]]
name = "quinn"
version = "0.11.9"
@@ -8056,7 +8066,7 @@ dependencies = [
"quinn-udp",
"rustc-hash 2.1.2",
"rustls 0.23.40",
- "socket2 0.5.10",
+ "socket2 0.6.3",
"thiserror 2.0.18",
"tokio",
"tracing",
@@ -8094,9 +8104,9 @@ dependencies = [
"cfg_aliases",
"libc",
"once_cell",
- "socket2 0.5.10",
+ "socket2 0.6.3",
"tracing",
- "windows-sys 0.59.0",
+ "windows-sys 0.60.2",
]
[[package]]
@@ -8464,7 +8474,7 @@ dependencies = [
"http 1.4.2",
"log",
"percent-encoding",
- "quick-xml",
+ "quick-xml 0.41.0",
"reqsign-core",
"rust-ini",
"serde",
@@ -8482,7 +8492,7 @@ dependencies = [
"bytes",
"http 1.4.2",
"log",
- "quick-xml",
+ "quick-xml 0.41.0",
"reqsign-aws-core",
"reqsign-core",
"serde",
@@ -8956,7 +8966,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys 0.12.1",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -9048,7 +9058,7 @@ dependencies = [
"security-framework 3.7.0",
"security-framework-sys",
"webpki-root-certs",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -9220,7 +9230,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521"
dependencies = [
"libc",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -10379,7 +10389,7 @@ dependencies = [
"getrandom 0.4.2",
"once_cell",
"rustix 1.1.4",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -10389,7 +10399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874"
dependencies = [
"rustix 1.1.4",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -11666,7 +11676,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.61.2",
]
[[package]]
diff --git a/core/Cargo.toml b/core/Cargo.toml
index 002d143a0..2ebf3fa38 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -50,7 +50,7 @@ futures = { version = "0.3", default-features = false }
http = "1.4"
log = { version = "0.4.32" }
logforth = { version = "0.30.1", features = ["starter-log"] }
-quick-xml = { version = "0.41.0", default-features = false }
+quick-xml = { version = "0.42.0", default-features = false }
rand = "0.10.1"
serde = { version = "1", default-features = false }
serde_json = "1"
diff --git a/core/services/webdav/src/core.rs b/core/services/webdav/src/core.rs
index 3d4ab2fc0..3efc23dfb 100644
--- a/core/services/webdav/src/core.rs
+++ b/core/services/webdav/src/core.rs
@@ -627,10 +627,10 @@ pub fn parse_user_metadata_from_xml(xml: &str, namespace_uri: &str) -> HashMap<S
Ok(Event::Start(ref e)) => {
// Extract namespace declarations from attributes
for attr in e.attributes().flatten() {
- let key = String::from_utf8_lossy(attr.key.as_ref()).to_string();
+ let key = attr.key.as_ref().to_string();
if key.starts_with("xmlns:") {
let prefix = key.strip_prefix("xmlns:").unwrap_or("").to_string();
- let uri = String::from_utf8_lossy(&attr.value).to_string();
+ let uri = attr.value.to_string();
if uri == namespace_uri && !target_prefixes.contains(&prefix) {
target_prefixes.push(prefix.clone());
}
@@ -639,7 +639,7 @@ pub fn parse_user_metadata_from_xml(xml: &str, namespace_uri: &str) -> HashMap<S
}
// Check if this element is in our target namespace
- let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
+ let name = e.name().as_ref().to_string();
if let Some(colon_pos) = name.find(':') {
let prefix = &name[..colon_pos];
let local_name = &name[colon_pos + 1..];
@@ -652,10 +652,10 @@ pub fn parse_user_metadata_from_xml(xml: &str, namespace_uri: &str) -> HashMap<S
Ok(Event::Empty(ref e)) => {
// Extract namespace declarations from attributes
for attr in e.attributes().flatten() {
- let key = String::from_utf8_lossy(attr.key.as_ref()).to_string();
+ let key = attr.key.as_ref().to_string();
if key.starts_with("xmlns:") {
let prefix = key.strip_prefix("xmlns:").unwrap_or("").to_string();
- let uri = String::from_utf8_lossy(&attr.value).to_string();
+ let uri = attr.value.to_string();
if uri == namespace_uri && !target_prefixes.contains(&prefix) {
target_prefixes.push(prefix.clone());
}
@@ -664,7 +664,7 @@ pub fn parse_user_metadata_from_xml(xml: &str, namespace_uri: &str) -> HashMap<S
}
// For Empty events (self-closing tags), immediately insert with empty value
- let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
+ let name = e.name().as_ref().to_string();
if let Some(colon_pos) = name.find(':') {
let prefix = &name[..colon_pos];
let local_name = &name[colon_pos + 1..];
@@ -675,13 +675,11 @@ pub fn parse_user_metadata_from_xml(xml: &str, namespace_uri: &str) -> HashMap<S
}
Ok(Event::Text(ref e)) if current_prop_key.is_some() => {
// Text content - add directly (no escaping needed)
- let text_str = String::from_utf8_lossy(e.as_ref());
- current_prop_value.push_str(&text_str);
+ current_prop_value.push_str(e.as_ref());
}
Ok(Event::GeneralRef(ref e)) if current_prop_key.is_some() => {
// Handle XML entity references (e.g., < > & " ')
- let entity_name = String::from_utf8_lossy(e.as_ref());
- let decoded = match entity_name.as_ref() {
+ let decoded = match e.as_ref() {
"lt" => "<",
"gt" => ">",
"amp" => "&",
@@ -692,7 +690,7 @@ pub fn parse_user_metadata_from_xml(xml: &str, namespace_uri: &str) -> HashMap<S
current_prop_value.push_str(decoded);
}
Ok(Event::End(ref e)) => {
- let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
+ let name = e.name().as_ref().to_string();
if let Some(colon_pos) = name.find(':') {
let prefix = &name[..colon_pos];
let local_name = &name[colon_pos + 1..];
@@ -734,7 +732,7 @@ pub fn check_proppatch_response(xml: &str) -> Result<()> {
loop {
match reader.read_event_into(&mut buf) {
Ok(Event::Start(ref e)) => {
- let name = String::from_utf8_lossy(e.name().as_ref()).to_lowercase();
+ let name = e.name().as_ref().to_lowercase();
// Match status element regardless of namespace prefix
if name.ends_with(":status") || name == "status" {
in_status = true;
@@ -742,11 +740,10 @@ pub fn check_proppatch_response(xml: &str) -> Result<()> {
}
}
Ok(Event::Text(ref e)) if in_status => {
- let text_str = String::from_utf8_lossy(e.as_ref());
- status_text.push_str(&text_str);
+ status_text.push_str(e.as_ref());
}
Ok(Event::End(ref e)) => {
- let name = String::from_utf8_lossy(e.name().as_ref()).to_lowercase();
+ let name = e.name().as_ref().to_lowercase();
if name.ends_with(":status") || name == "status" {
// Parse status code from "HTTP/1.1 XXX Description"
if let Some(code_str) = status_text.split_whitespace().nth(1)