From 024a3107d8d62dcc91eb5d856ca65265719bcdb2 Mon Sep 17 00:00:00 2001 From: houseme Date: Wed, 25 Feb 2026 19:21:20 +0800 Subject: [PATCH] build(deps): bump the dependencies group with 4 updates (#1955) --- Cargo.lock | 121 ++++++++++++---------------- Cargo.toml | 10 +-- crates/protocols/Cargo.toml | 3 +- crates/protocols/src/ftps/driver.rs | 4 +- crates/protocols/src/ftps/server.rs | 6 +- crates/scanner/Cargo.toml | 1 - rustfs/Cargo.toml | 1 - rustfs/src/admin/auth.rs | 6 +- rustfs/src/admin/router.rs | 3 +- rustfs/src/admin/rpc.rs | 4 +- rustfs/src/server/http.rs | 4 +- 11 files changed, 70 insertions(+), 93 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8c7df0be1..82711587d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1094,28 +1094,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "axum-server" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1df331683d982a0b9492b38127151e6453639cd34926eb9c07d4cd8c6d22bfc" -dependencies = [ - "arc-swap", - "bytes", - "either", - "fs-err", - "http 1.4.0", - "http-body 1.0.1", - "hyper", - "hyper-util", - "pin-project-lite", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - [[package]] name = "backtrace" version = "0.3.76" @@ -1419,9 +1397,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -3397,16 +3375,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs-err" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fde052dbfc920003cfd2c8e2c6e6d4cc7c1091538c3a24226cec0665ab08c0" -dependencies = [ - "autocfg", - "tokio", -] - [[package]] name = "fs_extra" version = "1.3.0" @@ -4552,9 +4520,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.88" +version = "0.3.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e709f3e3d22866f9c25b3aff01af289b18422cc8b4262fb19103ee80fe513d" +checksum = "14dc6f6450b3f6d4ed5b16327f38fed626d375a886159ca555bd7822c0c3a5a6" dependencies = [ "once_cell", "wasm-bindgen", @@ -4755,7 +4723,7 @@ checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ "bitflags 2.11.0", "libc", - "redox_syscall 0.7.1", + "redox_syscall 0.7.2", ] [[package]] @@ -4778,9 +4746,9 @@ dependencies = [ [[package]] name = "libunftp" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3186f219c64999ae9a2900c78ebfaf4a6b4acc3b2bbf5afe5e027e5ca5978593" +checksum = "c9f8ff371890db2cf65a0758dba9a79f9cd965de369f6dbdc6581a22780af45e" dependencies = [ "async-trait", "bitflags 2.11.0", @@ -4791,8 +4759,6 @@ dependencies = [ "futures-util", "getrandom 0.3.4", "lazy_static", - "libc", - "md-5 0.10.6", "moka", "nix 0.30.1", "prometheus", @@ -4806,8 +4772,8 @@ dependencies = [ "tokio-util", "tracing", "tracing-attributes", + "unftp-core", "uuid", - "x509-parser", ] [[package]] @@ -6467,9 +6433,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35985aa610addc02e24fc232012c86fd11f14111180f902b67e2d5331f8ebf2b" +checksum = "6d94dd2f7cd932d4dc02cc8b2b50dfd38bd079a4e5d79198b99743d7fcf9a4b4" dependencies = [ "bitflags 2.11.0", ] @@ -6548,9 +6514,9 @@ checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" @@ -6835,7 +6801,6 @@ dependencies = [ "aws-config", "aws-sdk-s3", "axum", - "axum-server", "backtrace", "base64", "base64-simd", @@ -7384,6 +7349,7 @@ dependencies = [ "time", "tokio", "tracing", + "unftp-core", ] [[package]] @@ -7487,7 +7453,6 @@ dependencies = [ "rustfs-config", "rustfs-ecstore", "rustfs-filemeta", - "rustfs-madmin", "rustfs-utils", "s3s", "serde", @@ -7697,9 +7662,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "aws-lc-rs", "log", @@ -8082,9 +8047,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.1" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +checksum = "381b283ce7bc6b476d903296fb59d0d36633652b633b27f64db4fb46dcbfc3b9" dependencies = [ "base64", "chrono", @@ -8101,9 +8066,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.1" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +checksum = "a6d4e30573c8cb306ed6ab1dca8423eec9a463ea0e155f45399455e0368b27e0" dependencies = [ "darling 0.21.3", "proc-macro2", @@ -8216,9 +8181,9 @@ dependencies = [ [[package]] name = "shellexpand" -version = "3.1.1" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" +checksum = "32824fab5e16e6c4d86dc1ba84489390419a39f97699852b66480bb87d297ed8" dependencies = [ "dirs", ] @@ -8799,9 +8764,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.25.0" +version = "3.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ "fastrand", "getrandom 0.4.1", @@ -9431,6 +9396,22 @@ dependencies = [ "tz-rs", ] +[[package]] +name = "unftp-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79acf4b257aa56dd7f00466a81693d6c79c362c55092b3137909d6e76249ad80" +dependencies = [ + "async-trait", + "chrono", + "derive_more", + "libc", + "md-5 0.10.6", + "thiserror 2.0.18", + "tokio", + "x509-parser", +] + [[package]] name = "unicase" version = "2.9.0" @@ -9645,9 +9626,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.111" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1adf1535672f5b7824f817792b1afd731d7e843d2d04ec8f27e8cb51edd8ac" +checksum = "60722a937f594b7fde9adb894d7c092fc1bb6612897c46368d18e7a20208eff2" dependencies = [ "cfg-if", "once_cell", @@ -9658,9 +9639,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.61" +version = "0.4.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe88540d1c934c4ec8e6db0afa536876c5441289d7f9f9123d4f065ac1250a6b" +checksum = "8a89f4650b770e4521aa6573724e2aed4704372151bd0de9d16a3bbabb87441a" dependencies = [ "cfg-if", "futures-util", @@ -9672,9 +9653,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.111" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e638317c08b21663aed4d2b9a2091450548954695ff4efa75bff5fa546b3b1" +checksum = "0fac8c6395094b6b91c4af293f4c79371c163f9a6f56184d2c9a85f5a95f3950" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9682,9 +9663,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.111" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c64760850114d03d5f65457e96fc988f11f01d38fbaa51b254e4ab5809102af" +checksum = "ab3fabce6159dc20728033842636887e4877688ae94382766e00b180abac9d60" dependencies = [ "bumpalo", "proc-macro2", @@ -9695,9 +9676,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.111" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60eecd4fe26177cfa3339eb00b4a36445889ba3ad37080c2429879718e20ca41" +checksum = "de0e091bdb824da87dc01d967388880d017a0a9bc4f3bdc0d86ee9f9336e3bb5" dependencies = [ "unicode-ident", ] @@ -9751,9 +9732,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.88" +version = "0.3.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6bb20ed2d9572df8584f6dc81d68a41a625cadc6f15999d649a70ce7e3597a" +checksum = "705eceb4ce901230f8625bd1d665128056ccbe4b7408faa625eec1ba80f59a97" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index b32c8296b..4d2bcc2fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -109,7 +109,6 @@ async-compression = { version = "0.4.40" } async-recursion = "1.1.1" async-trait = "0.1.89" axum = "0.8.8" -axum-server = { version = "0.8.0", features = ["tls-rustls"], default-features = false } futures = "0.3.32" futures-core = "0.3.32" futures-util = "0.3.32" @@ -159,7 +158,7 @@ hmac = { version = "0.13.0-rc.5" } jsonwebtoken = { version = "10.3.0", features = ["aws_lc_rs"] } pbkdf2 = "0.13.0-rc.9" rsa = { version = "0.10.0-rc.15" } -rustls = { version = "0.23.36", default-features = false, features = ["aws-lc-rs", "logging", "tls12", "prefer-post-quantum", "std"] } +rustls = { version = "0.23.37", default-features = false, features = ["aws-lc-rs", "logging", "tls12", "prefer-post-quantum", "std"] } rustls-pemfile = "2.2.0" rustls-pki-types = "1.14.0" sha1 = "0.11.0-rc.5" @@ -168,7 +167,7 @@ subtle = "2.6" zeroize = { version = "1.8.2", features = ["derive"] } # Time and Date -chrono = { version = "0.4.43", features = ["serde"] } +chrono = { version = "0.4.44", features = ["serde"] } humantime = "2.3.0" jiff = { version = "0.2.21", features = ["serde"] } time = { version = "0.3.47", features = ["std", "parsing", "formatting", "macros", "serde"] } @@ -247,7 +246,7 @@ starshard = { version = "1.1.0", features = ["rayon", "async", "serde"] } strum = { version = "0.28.0", features = ["derive"] } sysinfo = "0.38.2" temp-env = "0.3.6" -tempfile = "3.25.0" +tempfile = "3.26.0" test-case = "3.3.1" thiserror = "2.0.18" tracing = { version = "0.1.44" } @@ -277,7 +276,8 @@ opentelemetry-semantic-conventions = { version = "0.31.0", features = ["semconv_ opentelemetry-stdout = { version = "0.31.0" } # FTP and SFTP -libunftp = { version = "0.22.0", features = ["experimental"] } +libunftp = { version = "0.23.0", features = ["experimental"] } +unftp-core = "0.1.0" suppaftp = { version = "8.0.2", features = ["tokio", "tokio-rustls-aws-lc-rs"] } rcgen = "0.14.7" diff --git a/crates/protocols/Cargo.toml b/crates/protocols/Cargo.toml index b21f406c7..a4e2b3cf6 100644 --- a/crates/protocols/Cargo.toml +++ b/crates/protocols/Cargo.toml @@ -27,7 +27,7 @@ categories = ["network-programming", "filesystem"] [features] default = [] -ftps = ["dep:libunftp", "dep:rustls"] +ftps = ["dep:libunftp", "dep:unftp-core", "dep:rustls"] [dependencies] # Core RustFS dependencies @@ -57,6 +57,7 @@ s3s = { workspace = true } # FTPS specific dependencies (optional) libunftp = { workspace = true, optional = true } +unftp-core = { workspace = true, optional = true } rustls = { workspace = true, optional = true } [package.metadata.docs.rs] diff --git a/crates/protocols/src/ftps/driver.rs b/crates/protocols/src/ftps/driver.rs index a45982085..02ed09fbd 100644 --- a/crates/protocols/src/ftps/driver.rs +++ b/crates/protocols/src/ftps/driver.rs @@ -17,13 +17,13 @@ use crate::common::gateway::S3Action; use crate::common::gateway::authorize_operation; use async_trait::async_trait; use futures_util::stream; -use libunftp::storage::{Error, ErrorKind, Fileinfo, Metadata, Result, StorageBackend}; use rustfs_utils::path; use s3s::dto::*; use std::fmt::Debug; use std::path::{Path, PathBuf}; use tokio::io::AsyncRead; use tracing::{debug, error}; +use unftp_core::storage::{Error, ErrorKind, Fileinfo, Metadata, Result, StorageBackend}; /// FTPS metadata implementation #[derive(Debug, Clone)] @@ -89,7 +89,7 @@ where async fn list_buckets( &self, session_context: &crate::common::session::SessionContext, - ) -> Result as libunftp::storage::StorageBackend>::Metadata>>> + ) -> Result as unftp_core::storage::StorageBackend>::Metadata>>> { match authorize_operation(session_context, &S3Action::ListBuckets, "", None).await { Ok(_) => {} diff --git a/crates/protocols/src/ftps/server.rs b/crates/protocols/src/ftps/server.rs index ad37098aa..7f9e102f3 100644 --- a/crates/protocols/src/ftps/server.rs +++ b/crates/protocols/src/ftps/server.rs @@ -17,7 +17,6 @@ use super::driver::FtpsDriver; use crate::common::client::s3::StorageBackend; use crate::common::session::{Protocol, ProtocolPrincipal, SessionContext}; use crate::constants::{network::DEFAULT_SOURCE_IP, paths::ROOT_PATH}; -use libunftp::auth::{AuthenticationError, Authenticator, Principal, UserDetail, UserDetailError, UserDetailProvider}; use libunftp::options::FtpsRequired; use std::fmt::{Debug, Display, Formatter}; use std::net::IpAddr; @@ -25,6 +24,9 @@ use std::path::Path; use std::sync::Arc; use tokio::sync::broadcast; use tracing::{debug, error, info, warn}; +use unftp_core::auth::{ + AuthenticationError, Authenticator, Credentials, Principal, UserDetail, UserDetailError, UserDetailProvider, +}; /// FTPS user implementation #[derive(Debug, Clone)] @@ -253,7 +255,7 @@ impl FtpsAuthenticator { #[async_trait::async_trait] impl Authenticator for FtpsAuthenticator { /// Authenticate FTP user against RustFS IAM system - async fn authenticate(&self, username: &str, creds: &libunftp::auth::Credentials) -> Result { + async fn authenticate(&self, username: &str, creds: &Credentials) -> Result { use rustfs_credentials::Credentials as S3Credentials; use rustfs_iam::get; diff --git a/crates/scanner/Cargo.toml b/crates/scanner/Cargo.toml index b6b846c51..b76595e90 100644 --- a/crates/scanner/Cargo.toml +++ b/crates/scanner/Cargo.toml @@ -45,7 +45,6 @@ chrono = { workspace = true } path-clean = { workspace = true } rmp-serde = { workspace = true } rustfs-filemeta = { workspace = true } -rustfs-madmin = { workspace = true } tokio-util = { workspace = true } rustfs-ecstore = { workspace = true } http = { workspace = true } diff --git a/rustfs/Cargo.toml b/rustfs/Cargo.toml index cf7035b90..54f993c34 100644 --- a/rustfs/Cargo.toml +++ b/rustfs/Cargo.toml @@ -71,7 +71,6 @@ rustfs-scanner = { workspace = true } # Async Runtime and Networking async-trait = { workspace = true } axum.workspace = true -axum-server = { workspace = true } futures.workspace = true futures-util.workspace = true hyper.workspace = true diff --git a/rustfs/src/admin/auth.rs b/rustfs/src/admin/auth.rs index e698b5d7a..c2cfc525a 100644 --- a/rustfs/src/admin/auth.rs +++ b/rustfs/src/admin/auth.rs @@ -17,10 +17,8 @@ use http::HeaderMap; use rustfs_credentials::Credentials; use rustfs_iam::store::object::ObjectStore; use rustfs_iam::sys::IamSys; -use rustfs_policy::policy::Args; -use rustfs_policy::policy::action::Action; -use s3s::S3Result; -use s3s::s3_error; +use rustfs_policy::policy::{Args, action::Action}; +use s3s::{S3Result, s3_error}; use std::collections::HashMap; use std::sync::Arc; diff --git a/rustfs/src/admin/router.rs b/rustfs/src/admin/router.rs index 8c32c46ee..8c2709d27 100644 --- a/rustfs/src/admin/router.rs +++ b/rustfs/src/admin/router.rs @@ -12,8 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::admin::console::is_console_path; -use crate::admin::console::make_console_server; +use crate::admin::console::{is_console_path, make_console_server}; use crate::server::{ADMIN_PREFIX, HEALTH_PREFIX, HEALTH_READY_PATH, PROFILE_CPU_PATH, PROFILE_MEMORY_PATH, RPC_PREFIX}; use hyper::HeaderMap; use hyper::Method; diff --git a/rustfs/src/admin/rpc.rs b/rustfs/src/admin/rpc.rs index 8098236de..0c6fbc66d 100644 --- a/rustfs/src/admin/rpc.rs +++ b/rustfs/src/admin/rpc.rs @@ -12,9 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::router::AdminOperation; -use super::router::Operation; -use super::router::S3Router; +use crate::admin::router::{AdminOperation, Operation, S3Router}; use crate::server::RPC_PREFIX; use futures::StreamExt; use http::StatusCode; diff --git a/rustfs/src/server/http.rs b/rustfs/src/server/http.rs index f7ea27b52..c5bfd2bf3 100644 --- a/rustfs/src/server/http.rs +++ b/rustfs/src/server/http.rs @@ -12,13 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Ensure the correct path for parse_license is imported -use super::compress::{CompressionConfig, CompressionPredicate}; +// Import HTTP server components and compression configuration use crate::admin; use crate::auth::IAMAuth; use crate::config; use crate::server::{ ReadinessGateLayer, RemoteAddr, ServiceState, ServiceStateManager, + compress::{CompressionConfig, CompressionPredicate}, hybrid::hybrid, layer::{ConditionalCorsLayer, RedirectLayer}, };