You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2024/09/11 09:13:27 UTC

(opendal) branch main updated: chore: Bump OpenDAL to 0.50.0 (#5110)

This is an automated email from the ASF dual-hosted git repository.

xuanwo 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 fa11f9dfa8 chore: Bump OpenDAL to 0.50.0 (#5110)
fa11f9dfa8 is described below

commit fa11f9dfa88811b54980f540a24c5938fcee67ee
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Wed Sep 11 17:13:21 2024 +0800

    chore: Bump OpenDAL to 0.50.0 (#5110)
    
    * chore: Bump OpenDAL to 0.50.0
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
    
    * rename to cloud filter
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
    
    * fix cloudfilter ci
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
    
    * Fix python test
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
    
    ---------
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
---
 ...dfilter.yml => ci_integration_cloud_filter.yml} |    6 +-
 .github/workflows/release_rust.yml                 |    5 +-
 ... => test_behavior_integration_cloud_filter.yml} |   12 +-
 bin/oay/Cargo.lock                                 |  162 +--
 bin/oay/Cargo.toml                                 |    6 +-
 bin/oay/DEPENDENCIES.rust.tsv                      |   63 +-
 bin/ofs/Cargo.lock                                 |  148 +--
 bin/ofs/Cargo.toml                                 |   10 +-
 bin/ofs/DEPENDENCIES.rust.tsv                      |   67 +-
 bin/oli/Cargo.lock                                 |  399 +++----
 bin/oli/Cargo.toml                                 |    4 +-
 bin/oli/DEPENDENCIES.rust.tsv                      |   61 +-
 bindings/c/Cargo.toml                              |    2 +-
 bindings/c/DEPENDENCIES.rust.tsv                   |   57 +-
 bindings/cpp/Cargo.toml                            |    2 +-
 bindings/cpp/DEPENDENCIES.rust.tsv                 |   63 +-
 bindings/dotnet/Cargo.toml                         |    2 +-
 bindings/dotnet/DEPENDENCIES.rust.tsv              |   55 +-
 bindings/haskell/Cargo.toml                        |    2 +-
 bindings/haskell/DEPENDENCIES.rust.tsv             |   55 +-
 bindings/haskell/opendal.cabal                     |    2 +-
 bindings/java/Cargo.toml                           |    2 +-
 bindings/java/DEPENDENCIES.rust.tsv                |   67 +-
 bindings/java/pom.xml                              |    2 +-
 bindings/lua/Cargo.toml                            |    2 +-
 bindings/lua/DEPENDENCIES.rust.tsv                 |   57 +-
 ...l-0.1.8-1.rockspec => opendal-0.1.9-1.rockspec} |    2 +-
 bindings/nodejs/Cargo.toml                         |    2 +-
 bindings/nodejs/DEPENDENCIES.rust.tsv              |   55 +-
 bindings/nodejs/npm/darwin-arm64/package.json      |    2 +-
 bindings/nodejs/npm/darwin-x64/package.json        |    2 +-
 bindings/nodejs/npm/linux-arm64-gnu/package.json   |    2 +-
 bindings/nodejs/npm/linux-arm64-musl/package.json  |    2 +-
 bindings/nodejs/npm/linux-x64-gnu/package.json     |    2 +-
 bindings/nodejs/npm/win32-arm64-msvc/package.json  |    2 +-
 bindings/nodejs/npm/win32-x64-msvc/package.json    |    2 +-
 bindings/nodejs/package.json                       |    2 +-
 bindings/ocaml/DEPENDENCIES.rust.tsv               |   67 +-
 bindings/php/Cargo.toml                            |    2 +-
 bindings/php/DEPENDENCIES.rust.tsv                 |   57 +-
 bindings/python/Cargo.toml                         |    2 +-
 bindings/python/DEPENDENCIES.rust.tsv              |   66 +-
 bindings/python/tests/test_read.py                 |    9 +-
 bindings/ruby/Cargo.toml                           |    2 +-
 bindings/ruby/DEPENDENCIES.rust.tsv                |   55 +-
 bindings/ruby/lib/opendal_ruby/version.rb          |    2 +-
 core/Cargo.lock                                    | 1090 ++++++++------------
 core/Cargo.toml                                    |  146 +--
 core/DEPENDENCIES.rust.tsv                         |   75 +-
 core/src/layers/fastrace.rs                        |    9 +-
 core/src/layers/logging.rs                         |    8 +-
 core/src/layers/mod.rs                             |    8 +-
 core/src/layers/observe/metrics.rs                 |    7 +-
 core/src/layers/observe/mod.rs                     |    1 -
 core/src/layers/prometheus.rs                      |  164 +--
 core/src/layers/prometheus_client.rs               |  128 +--
 core/src/layers/tracing.rs                         |   15 +-
 core/src/raw/adapters/typed_kv/backend.rs          |    5 +-
 core/src/services/aliyun_drive/config.rs           |    7 +-
 core/src/services/alluxio/config.rs                |    7 +-
 core/src/services/atomicserver/config.rs           |    7 +-
 core/src/services/azblob/config.rs                 |    7 +-
 core/src/services/azblob/lister.rs                 |    5 +-
 core/src/services/azdls/config.rs                  |    7 +-
 core/src/services/azfile/config.rs                 |    7 +-
 core/src/services/b2/config.rs                     |    7 +-
 core/src/services/cacache/config.rs                |    4 +-
 core/src/services/chainsafe/config.rs              |    7 +-
 core/src/services/cloudflare_kv/config.rs          |    7 +-
 core/src/services/compfs/config.rs                 |    4 +-
 core/src/services/cos/config.rs                    |    7 +-
 core/src/services/d1/config.rs                     |    7 +-
 core/src/services/dashmap/config.rs                |    4 +-
 core/src/services/dbfs/config.rs                   |    7 +-
 core/src/services/dropbox/config.rs                |    7 +-
 core/src/services/etcd/config.rs                   |    7 +-
 core/src/services/foundationdb/config.rs           |    7 +-
 core/src/services/fs/config.rs                     |    4 +-
 core/src/services/fs/lister.rs                     |    8 +-
 core/src/services/ftp/config.rs                    |    7 +-
 core/src/services/gcs/config.rs                    |    7 +-
 core/src/services/gdrive/config.rs                 |    7 +-
 core/src/services/ghac/config.rs                   |    4 +-
 core/src/services/github/config.rs                 |    7 +-
 core/src/services/gridfs/backend.rs                |    3 +-
 core/src/services/gridfs/config.rs                 |    7 +-
 core/src/services/hdfs/config.rs                   |    7 +-
 core/src/services/hdfs_native/config.rs            |    7 +-
 core/src/services/http/config.rs                   |    7 +-
 core/src/services/huggingface/config.rs            |    7 +-
 core/src/services/icloud/config.rs                 |    7 +-
 core/src/services/ipfs/config.rs                   |    4 +-
 core/src/services/ipmfs/config.rs                  |    4 +-
 core/src/services/koofr/config.rs                  |    7 +-
 core/src/services/lakefs/backend.rs                |    3 +-
 core/src/services/lakefs/config.rs                 |    6 +-
 core/src/services/lakefs/lister.rs                 |    9 +-
 core/src/services/lakefs/writer.rs                 |    3 +-
 core/src/services/libsql/config.rs                 |    7 +-
 core/src/services/memcached/config.rs              |    4 +-
 core/src/services/memory/backend.rs                |    3 +-
 core/src/services/memory/config.rs                 |    4 +-
 core/src/services/mini_moka/config.rs              |    4 +-
 core/src/services/moka/config.rs                   |    7 +-
 core/src/services/mongodb/config.rs                |    7 +-
 core/src/services/monoiofs/config.rs               |    4 +-
 core/src/services/monoiofs/reader.rs               |    9 +-
 core/src/services/monoiofs/writer.rs               |    9 +-
 core/src/services/mysql/backend.rs                 |   12 +-
 core/src/services/mysql/config.rs                  |    7 +-
 core/src/services/obs/config.rs                    |    7 +-
 core/src/services/onedrive/config.rs               |    7 +-
 core/src/services/oss/config.rs                    |    7 +-
 core/src/services/pcloud/config.rs                 |    7 +-
 core/src/services/persy/config.rs                  |    3 +-
 core/src/services/postgresql/backend.rs            |   14 +-
 core/src/services/postgresql/config.rs             |    7 +-
 core/src/services/redb/config.rs                   |    4 +-
 core/src/services/redis/backend.rs                 |    3 +-
 core/src/services/redis/config.rs                  |    7 +-
 core/src/services/rocksdb/config.rs                |    4 +-
 core/src/services/s3/config.rs                     |    7 +-
 core/src/services/seafile/config.rs                |    7 +-
 core/src/services/sftp/config.rs                   |    7 +-
 core/src/services/sled/config.rs                   |    7 +-
 core/src/services/sqlite/backend.rs                |   14 +-
 core/src/services/sqlite/config.rs                 |    7 +-
 core/src/services/supabase/config.rs               |    7 +-
 core/src/services/surrealdb/config.rs              |    7 +-
 core/src/services/swift/config.rs                  |    7 +-
 core/src/services/tikv/config.rs                   |    7 +-
 core/src/services/upyun/config.rs                  |    7 +-
 core/src/services/vercel_artifacts/config.rs       |    7 +-
 core/src/services/vercel_blob/config.rs            |    7 +-
 core/src/services/webdav/config.rs                 |    7 +-
 core/src/services/webhdfs/config.rs                |    7 +-
 core/src/services/yandex_disk/config.rs            |    7 +-
 core/src/types/builder.rs                          |    8 +-
 core/tests/behavior/async_list.rs                  |    3 +-
 .../{cloudfilter => cloud_filter}/.gitignore       |    0
 .../{cloudfilter => cloud_filter}/Cargo.toml       |    8 +-
 .../DEPENDENCIES.rust.tsv                          |   55 +-
 .../{cloudfilter => cloud_filter}/README.md        |   16 +-
 .../examples/readonly.rs                           |    4 +-
 .../{cloudfilter => cloud_filter}/src/file.rs      |    0
 .../{cloudfilter => cloud_filter}/src/lib.rs       |    8 +-
 .../tests/behavior/README.md                       |    4 +-
 .../tests/behavior/fetch_data.rs                   |    0
 .../tests/behavior/fetch_placeholder.rs            |    0
 .../tests/behavior/main.rs                         |    4 +-
 .../tests/behavior/utils.rs                        |    0
 integrations/dav-server/Cargo.toml                 |    6 +-
 integrations/dav-server/DEPENDENCIES.rust.tsv      |   55 +-
 integrations/fuse3/Cargo.toml                      |    4 +-
 integrations/fuse3/DEPENDENCIES.rust.tsv           |   55 +-
 integrations/object_store/Cargo.toml               |    6 +-
 integrations/object_store/DEPENDENCIES.rust.tsv    |   55 +-
 integrations/parquet/Cargo.toml                    |    6 +-
 integrations/parquet/DEPENDENCIES.rust.tsv         |   71 +-
 integrations/unftp-sbe/Cargo.toml                  |    6 +-
 integrations/unftp-sbe/DEPENDENCIES.rust.tsv       |   64 +-
 integrations/virtiofs/Cargo.toml                   |    2 +-
 integrations/virtiofs/DEPENDENCIES.rust.tsv        |   51 +-
 163 files changed, 2102 insertions(+), 2208 deletions(-)

diff --git a/.github/workflows/ci_integration_cloudfilter.yml b/.github/workflows/ci_integration_cloud_filter.yml
similarity index 90%
rename from .github/workflows/ci_integration_cloudfilter.yml
rename to .github/workflows/ci_integration_cloud_filter.yml
index 10637141d7..3a54b06af1 100644
--- a/.github/workflows/ci_integration_cloudfilter.yml
+++ b/.github/workflows/ci_integration_cloud_filter.yml
@@ -25,9 +25,9 @@ on:
     branches:
       - main
     paths:
-      - "integrations/cloudfilter/**"
+      - "integrations/cloud_filter/**"
       - "core/**"
-      - ".github/workflows/ci_integration_cloudfilter.yml"
+      - ".github/workflows/ci_integration_cloud_filter.yml"
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
@@ -47,5 +47,5 @@ jobs:
           github-token: ${{ secrets.GITHUB_TOKEN }}
 
       - name: Cargo clippy
-        working-directory: integrations/cloudfilter
+        working-directory: integrations/cloud_filter
         run: cargo clippy --all-targets --all-features --workspace -- -D warnings
diff --git a/.github/workflows/release_rust.yml b/.github/workflows/release_rust.yml
index 948336fa99..a8d9921f06 100644
--- a/.github/workflows/release_rust.yml
+++ b/.github/workflows/release_rust.yml
@@ -46,9 +46,10 @@ jobs:
           - "integrations/dav-server"
           - "integrations/fuse3"
           - "integrations/unftp-sbe"
+          - "integrations/cloud_filter"
           - "bin/oay" # depends on integrations/dav-server
           - "bin/oli"
-          - "bin/ofs" # depends on integrations/fuse3
+          - "bin/ofs" # depends on integrations/{fuse3,cloud_filter}
     steps:
       - uses: actions/checkout@v4
       - name: Checkout python env
@@ -79,7 +80,7 @@ jobs:
         working-directory: ${{ matrix.package }}
         # Only publish if it's a tag and the tag is not a pre-release
         if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }}
-        run: cargo publish
+        run: cargo publish --no-verify
         env:
           LD_LIBRARY_PATH: ${{ env.JAVA_HOME }}/lib/server:${{ env.LD_LIBRARY_PATH }}
           CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
diff --git a/.github/workflows/test_behavior_integration_cloudfilter.yml b/.github/workflows/test_behavior_integration_cloud_filter.yml
similarity index 82%
rename from .github/workflows/test_behavior_integration_cloudfilter.yml
rename to .github/workflows/test_behavior_integration_cloud_filter.yml
index 414cbe58d9..8c3295b5b5 100644
--- a/.github/workflows/test_behavior_integration_cloudfilter.yml
+++ b/.github/workflows/test_behavior_integration_cloud_filter.yml
@@ -15,19 +15,19 @@
 # specific language governing permissions and limitations
 # under the License.
 
-name: Behavior Test Integration CloudFilter
+name: Behavior Test Integration Cloud Filter
 
 on:
   push:
     paths:
       - "integrations/cloudfilter/**.rs"
       - "integrations/cloudfilter/Cargo.toml"
-      - ".github/workflows/test_behavior_integration_cloudfilter.yml"
+      - ".github/workflows/test_behavior_integration_cloud_filter.yml"
   pull_request:
     paths:
       - "integrations/cloudfilter/**.rs"
       - "integrations/cloudfilter/Cargo.toml"
-      - ".github/workflows/test_behavior_integration_cloudfilter.yml"
+      - ".github/workflows/test_behavior_integration_cloud_filter.yml"
 
 jobs:
   test:
@@ -39,11 +39,11 @@ jobs:
       - uses: actions/checkout@v4
       - name: Setup Rust toolchain
         uses: ./.github/actions/setup
-    
+
       - name: Test Integration CloudFilter
-        working-directory: integrations/cloudfilter
+        working-directory: integrations/cloud_filter
         run: cargo test --test behavior
         env:
           OPENDAL_TEST: fs
           OPENDAL_FS_ROOT: ../../fixtures/data
-          OPENDAL_DISABLE_RANDOM_ROOT: 'true'
+          OPENDAL_DISABLE_RANDOM_ROOT: "true"
diff --git a/bin/oay/Cargo.lock b/bin/oay/Cargo.lock
index abb64307ff..4b71468855 100644
--- a/bin/oay/Cargo.lock
+++ b/bin/oay/Cargo.lock
@@ -4,18 +4,18 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
 dependencies = [
  "gimli",
 ]
 
 [[package]]
-name = "adler"
-version = "1.0.2"
+name = "adler2"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
 
 [[package]]
 name = "ahash"
@@ -110,15 +110,15 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.86"
+version = "1.0.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8"
 
 [[package]]
 name = "async-trait"
-version = "0.1.81"
+version = "0.1.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
+checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -188,29 +188,28 @@ dependencies = [
 
 [[package]]
 name = "backon"
-version = "0.4.4"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d67782c3f868daa71d3533538e98a8e13713231969def7536e8039606fc46bf0"
+checksum = "e4fa97bb310c33c811334143cf64c5bb2b7b3c06e453db6b095d7061eff8f113"
 dependencies = [
  "fastrand",
- "futures-core",
- "pin-project",
+ "gloo-timers",
  "tokio",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.73"
+version = "0.3.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
 dependencies = [
  "addr2line",
- "cc",
  "cfg-if",
  "libc",
  "miniz_oxide",
  "object",
  "rustc-demangle",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -260,9 +259,9 @@ checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
 
 [[package]]
 name = "cc"
-version = "1.1.14"
+version = "1.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932"
+checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
 dependencies = [
  "shlex",
 ]
@@ -289,18 +288,18 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.16"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
+checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac"
 dependencies = [
  "clap_builder",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.5.15"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
+checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73"
 dependencies = [
  "anstream",
  "anstyle",
@@ -328,9 +327,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
 dependencies = [
  "libc",
 ]
@@ -379,7 +378,7 @@ dependencies = [
 
 [[package]]
 name = "dav-server-opendalfs"
-version = "0.1.0"
+version = "0.2.0"
 dependencies = [
  "anyhow",
  "bytes",
@@ -575,9 +574,21 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.29.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
+
+[[package]]
+name = "gloo-timers"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+]
 
 [[package]]
 name = "hashbrown"
@@ -693,9 +704,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.27.2"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
+checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
 dependencies = [
  "futures-util",
  "http",
@@ -711,9 +722,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
+checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -764,9 +775,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -774,9 +785,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.9.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4"
 
 [[package]]
 name = "is_terminal_polyfill"
@@ -895,11 +906,11 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.4"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
 dependencies = [
- "adler",
+ "adler2",
 ]
 
 [[package]]
@@ -941,7 +952,7 @@ dependencies = [
 
 [[package]]
 name = "oay"
-version = "0.41.10"
+version = "0.41.11"
 dependencies = [
  "anyhow",
  "axum",
@@ -968,9 +979,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.36.3"
+version = "0.36.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
 dependencies = [
  "memchr",
 ]
@@ -983,7 +994,7 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opendal"
-version = "0.49.2"
+version = "0.50.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -1116,9 +1127,9 @@ dependencies = [
 
 [[package]]
 name = "quinn"
-version = "0.11.3"
+version = "0.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156"
+checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684"
 dependencies = [
  "bytes",
  "pin-project-lite",
@@ -1134,9 +1145,9 @@ dependencies = [
 
 [[package]]
 name = "quinn-proto"
-version = "0.11.6"
+version = "0.11.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd"
+checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6"
 dependencies = [
  "bytes",
  "rand",
@@ -1151,15 +1162,15 @@ dependencies = [
 
 [[package]]
 name = "quinn-udp"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285"
+checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
 dependencies = [
  "libc",
  "once_cell",
  "socket2",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -1338,9 +1349,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
 
 [[package]]
 name = "rustls"
-version = "0.23.12"
+version = "0.23.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
+checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8"
 dependencies = [
  "once_cell",
  "ring",
@@ -1368,9 +1379,9 @@ checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.6"
+version = "0.102.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
+checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
 dependencies = [
  "ring",
  "rustls-pki-types",
@@ -1397,18 +1408,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.209"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.209"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1417,9 +1428,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.127"
+version = "1.0.128"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
 dependencies = [
  "itoa",
  "memchr",
@@ -1529,9 +1540,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
 
 [[package]]
 name = "syn"
-version = "2.0.76"
+version = "2.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1631,9 +1642,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.39.3"
+version = "1.40.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
+checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
 dependencies = [
  "backtrace",
  "bytes",
@@ -1669,9 +1680,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.11"
+version = "0.7.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
 dependencies = [
  "bytes",
  "futures-core",
@@ -1850,9 +1861,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.12"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
 
 [[package]]
 name = "unicode-normalization"
@@ -2016,9 +2027,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.26.3"
+version = "0.26.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
+checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a"
 dependencies = [
  "rustls-pki-types",
 ]
@@ -2102,6 +2113,15 @@ dependencies = [
  "windows-targets 0.52.6",
 ]
 
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
 [[package]]
 name = "windows-targets"
 version = "0.48.5"
@@ -2234,9 +2254,9 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.21"
+version = "0.8.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601"
+checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26"
 
 [[package]]
 name = "xmltree"
diff --git a/bin/oay/Cargo.toml b/bin/oay/Cargo.toml
index 0bcf6e0322..e57e6768c3 100644
--- a/bin/oay/Cargo.toml
+++ b/bin/oay/Cargo.toml
@@ -27,7 +27,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.41.10"
+version = "0.41.11"
 
 [features]
 default = ["frontends-webdav", "frontends-s3"]
@@ -47,11 +47,11 @@ bytes = { version = "1.5.0", optional = true }
 chrono = "0.4.31"
 clap = { version = "4", features = ["cargo", "string"] }
 dav-server = { version = "0.7", optional = true }
-dav-server-opendalfs = { version = "0.1.0", path = "../../integrations/dav-server", optional = true }
+dav-server-opendalfs = { version = "0.2.0", path = "../../integrations/dav-server", optional = true }
 dirs = "5.0.1"
 futures = "0.3"
 futures-util = { version = "0.3.29", optional = true }
-opendal = { version = "0.49.0", path = "../../core", features = [
+opendal = { version = "0.50.0", path = "../../core", features = [
   "services-fs",
 ] }
 quick-xml = { version = "0.36", features = ["serialize", "overlapped-lists"] }
diff --git a/bin/oay/DEPENDENCIES.rust.tsv b/bin/oay/DEPENDENCIES.rust.tsv
index 784b18f235..2c2d31d945 100644
--- a/bin/oay/DEPENDENCIES.rust.tsv
+++ b/bin/oay/DEPENDENCIES.rust.tsv
@@ -1,6 +1,6 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X						X					
-adler@1.0.2	X	X						X					
+addr2line@0.24.1		X						X					
+adler2@2.0.0	X	X						X					
 ahash@0.8.11		X						X					
 aho-corasick@1.1.3								X				X	
 allocator-api2@0.2.18		X						X					
@@ -11,13 +11,13 @@ anstyle@1.0.8		X						X
 anstyle-parse@0.2.5		X						X					
 anstyle-query@1.1.1		X						X					
 anstyle-wincon@3.0.4		X						X					
-anyhow@1.0.86		X						X					
-async-trait@0.1.81		X						X					
+anyhow@1.0.87		X						X					
+async-trait@0.1.82		X						X					
 autocfg@1.3.0		X						X					
 axum@0.7.5								X					
 axum-core@0.4.3								X					
-backon@0.4.4		X											
-backtrace@0.3.73		X						X					
+backon@1.2.0		X											
+backtrace@0.3.74		X						X					
 base64@0.21.7		X						X					
 base64@0.22.1		X						X					
 bitflags@2.6.0		X						X					
@@ -25,18 +25,18 @@ block-buffer@0.10.4		X						X
 bumpalo@3.16.0		X						X					
 byteorder@1.5.0								X				X	
 bytes@1.7.1								X					
-cc@1.1.14		X						X					
+cc@1.1.18		X						X					
 cfg-if@1.0.0		X						X					
 chrono@0.4.38		X						X					
-clap@4.5.16		X						X					
-clap_builder@4.5.15		X						X					
+clap@4.5.17		X						X					
+clap_builder@4.5.17		X						X					
 clap_lex@0.7.2		X						X					
 colorchoice@1.0.2		X						X					
 core-foundation-sys@0.8.7		X						X					
-cpufeatures@0.2.13		X						X					
+cpufeatures@0.2.14		X						X					
 crypto-common@0.1.6		X						X					
 dav-server@0.7.0		X											
-dav-server-opendalfs@0.1.0		X											
+dav-server-opendalfs@0.2.0		X											
 deranged@0.3.11		X						X					
 digest@0.10.7		X						X					
 dirs@5.0.1		X						X					
@@ -57,7 +57,8 @@ futures-task@0.3.30		X						X
 futures-util@0.3.30		X						X					
 generic-array@0.14.7								X					
 getrandom@0.2.15		X						X					
-gimli@0.29.0		X						X					
+gimli@0.31.0		X						X					
+gloo-timers@0.3.0		X						X					
 hashbrown@0.14.5		X						X					
 headers@0.4.0								X					
 headers-core@0.3.0								X					
@@ -69,13 +70,13 @@ http-body-util@0.1.2								X
 httparse@1.9.4		X						X					
 httpdate@1.0.3		X						X					
 hyper@1.4.1								X					
-hyper-rustls@0.27.2		X					X	X					
-hyper-util@0.1.7								X					
+hyper-rustls@0.27.3		X					X	X					
+hyper-util@0.1.8								X					
 iana-time-zone@0.1.60		X						X					
 iana-time-zone-haiku@0.1.2		X						X					
 idna@0.5.0		X						X					
-indexmap@2.4.0		X						X					
-ipnet@2.9.0		X						X					
+indexmap@2.5.0		X						X					
+ipnet@2.10.0		X						X					
 is_terminal_polyfill@1.70.1		X						X					
 itoa@1.0.11		X						X					
 js-sys@0.3.70		X						X					
@@ -91,15 +92,15 @@ md-5@0.10.6		X						X
 memchr@2.7.4								X				X	
 mime@0.3.17		X						X					
 mime_guess@2.0.5								X					
-miniz_oxide@0.7.4		X						X					X
+miniz_oxide@0.8.0		X						X					X
 mio@1.0.2								X					
 nu-ansi-term@0.46.0								X					
 num-conv@0.1.0		X						X					
 num-traits@0.2.19		X						X					
-oay@0.41.10		X											
-object@0.36.3		X						X					
+oay@0.41.11		X											
+object@0.36.4		X						X					
 once_cell@1.19.0		X						X					
-opendal@0.49.2		X											
+opendal@0.50.0		X											
 option-ext@0.2.0									X				
 overload@0.1.1								X					
 parking_lot@0.12.3		X						X					
@@ -127,16 +128,16 @@ regex-syntax@0.8.4		X						X
 reqwest@0.12.7		X						X					
 ring@0.17.8										X			
 rustc-demangle@0.1.24		X						X					
-rustls@0.23.12		X					X	X					
+rustls@0.23.13		X					X	X					
 rustls-pemfile@2.1.3		X					X	X					
 rustls-pki-types@1.8.0		X						X					
-rustls-webpki@0.102.6							X						
+rustls-webpki@0.102.8							X						
 rustversion@1.0.17		X						X					
 ryu@1.0.18		X				X							
 scopeguard@1.2.0		X						X					
-serde@1.0.209		X						X					
-serde_derive@1.0.209		X						X					
-serde_json@1.0.127		X						X					
+serde@1.0.210		X						X					
+serde_derive@1.0.210		X						X					
+serde_json@1.0.128		X						X					
 serde_path_to_error@0.1.16		X						X					
 serde_spanned@0.6.7		X						X					
 serde_urlencoded@0.7.1		X						X					
@@ -149,7 +150,7 @@ socket2@0.5.7		X						X
 spin@0.9.8								X					
 strsim@0.11.1								X					
 subtle@2.6.1					X								
-syn@2.0.76		X						X					
+syn@2.0.77		X						X					
 sync_wrapper@0.1.2		X											
 sync_wrapper@1.0.1		X											
 thiserror@1.0.63		X						X					
@@ -160,10 +161,10 @@ time-core@0.1.2		X						X
 time-macros@0.2.18		X						X					
 tinyvec@1.8.0		X						X					X
 tinyvec_macros@0.1.1		X						X					X
-tokio@1.39.3								X					
+tokio@1.40.0								X					
 tokio-macros@2.4.0								X					
 tokio-rustls@0.26.0		X						X					
-tokio-util@0.7.11								X					
+tokio-util@0.7.12								X					
 toml@0.8.19		X						X					
 toml_datetime@0.6.8		X						X					
 toml_edit@0.22.20		X						X					
@@ -180,7 +181,7 @@ try-lock@0.2.5								X
 typenum@1.17.0		X						X					
 unicase@2.7.0		X						X					
 unicode-bidi@0.3.15		X						X					
-unicode-ident@1.0.12		X						X			X		
+unicode-ident@1.0.13		X						X			X		
 unicode-normalization@0.1.23		X						X					
 untrusted@0.9.0							X						
 url@2.5.2		X						X					
@@ -198,7 +199,7 @@ wasm-bindgen-macro-support@0.2.93		X						X
 wasm-bindgen-shared@0.2.93		X						X					
 wasm-streams@0.4.0		X						X					
 web-sys@0.3.70		X						X					
-webpki-roots@0.26.3									X				
+webpki-roots@0.26.5									X				
 winapi@0.3.9		X						X					
 winapi-i686-pc-windows-gnu@0.4.0		X						X					
 winapi-x86_64-pc-windows-gnu@0.4.0		X						X					
@@ -226,7 +227,7 @@ windows_x86_64_gnullvm@0.52.6		X						X
 windows_x86_64_msvc@0.48.5		X						X					
 windows_x86_64_msvc@0.52.6		X						X					
 winnow@0.6.18								X					
-xml-rs@0.8.21								X					
+xml-rs@0.8.22								X					
 xmltree@0.10.3								X					
 zerocopy@0.7.35		X		X				X					
 zerocopy-derive@0.7.35		X		X				X					
diff --git a/bin/ofs/Cargo.lock b/bin/ofs/Cargo.lock
index 37352c5a0e..7850162a8f 100644
--- a/bin/ofs/Cargo.lock
+++ b/bin/ofs/Cargo.lock
@@ -4,18 +4,18 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
 dependencies = [
  "gimli",
 ]
 
 [[package]]
-name = "adler"
-version = "1.0.2"
+name = "adler2"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
 
 [[package]]
 name = "aho-corasick"
@@ -92,9 +92,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.86"
+version = "1.0.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8"
 
 [[package]]
 name = "async-notify"
@@ -109,9 +109,9 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.81"
+version = "0.1.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
+checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -126,9 +126,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "backon"
-version = "1.0.2"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2caf634d05fe0642d0fb1ab43497fa627088ecd93f84b2d0f2a5d7b91f7730db"
+checksum = "e4fa97bb310c33c811334143cf64c5bb2b7b3c06e453db6b095d7061eff8f113"
 dependencies = [
  "fastrand",
  "gloo-timers",
@@ -137,17 +137,17 @@ dependencies = [
 
 [[package]]
 name = "backtrace"
-version = "0.3.73"
+version = "0.3.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
 dependencies = [
  "addr2line",
- "cc",
  "cfg-if",
  "libc",
  "miniz_oxide",
  "object",
  "rustc-demangle",
+ "windows-targets",
 ]
 
 [[package]]
@@ -200,9 +200,9 @@ checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
 
 [[package]]
 name = "cc"
-version = "1.1.14"
+version = "1.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932"
+checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
 dependencies = [
  "shlex",
 ]
@@ -241,9 +241,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.16"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
+checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -251,9 +251,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.5.15"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
+checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73"
 dependencies = [
  "anstream",
  "anstyle",
@@ -293,8 +293,8 @@ dependencies = [
 ]
 
 [[package]]
-name = "cloudfilter_opendal"
-version = "0.0.0"
+name = "cloud_filter_opendal"
+version = "0.0.1"
 dependencies = [
  "anyhow",
  "bincode",
@@ -354,9 +354,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
 dependencies = [
  "libc",
 ]
@@ -539,7 +539,7 @@ dependencies = [
 
 [[package]]
 name = "fuse3_opendal"
-version = "0.0.6"
+version = "0.0.7"
 dependencies = [
  "bytes",
  "fuse3",
@@ -665,9 +665,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.29.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
 
 [[package]]
 name = "gloo-timers"
@@ -790,9 +790,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.27.2"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
+checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
 dependencies = [
  "futures-util",
  "http",
@@ -808,9 +808,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
+checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -861,9 +861,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.9.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4"
 
 [[package]]
 name = "is_terminal_polyfill"
@@ -943,11 +943,11 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.4"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
 dependencies = [
- "adler",
+ "adler2",
 ]
 
 [[package]]
@@ -1014,21 +1014,21 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.36.3"
+version = "0.36.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "ofs"
-version = "0.0.11"
+version = "0.0.12"
 dependencies = [
  "anyhow",
  "clap",
  "cloud-filter",
- "cloudfilter_opendal",
+ "cloud_filter_opendal",
  "env_logger",
  "fuse3",
  "fuse3_opendal",
@@ -1055,7 +1055,7 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opendal"
-version = "0.49.2"
+version = "0.50.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -1096,9 +1096,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.2.0"
+version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
 
 [[package]]
 name = "percent-encoding"
@@ -1184,9 +1184,9 @@ dependencies = [
 
 [[package]]
 name = "quinn"
-version = "0.11.3"
+version = "0.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156"
+checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684"
 dependencies = [
  "bytes",
  "pin-project-lite",
@@ -1202,9 +1202,9 @@ dependencies = [
 
 [[package]]
 name = "quinn-proto"
-version = "0.11.6"
+version = "0.11.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd"
+checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6"
 dependencies = [
  "bytes",
  "rand",
@@ -1219,15 +1219,15 @@ dependencies = [
 
 [[package]]
 name = "quinn-udp"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285"
+checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
 dependencies = [
  "libc",
  "once_cell",
  "socket2",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -1410,18 +1410,18 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
 
 [[package]]
 name = "rustc_version"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
 dependencies = [
  "semver",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.34"
+version = "0.38.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36"
 dependencies = [
  "bitflags",
  "errno",
@@ -1432,9 +1432,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.23.12"
+version = "0.23.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
+checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8"
 dependencies = [
  "once_cell",
  "ring",
@@ -1462,9 +1462,9 @@ checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.6"
+version = "0.102.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
+checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
 dependencies = [
  "ring",
  "rustls-pki-types",
@@ -1494,18 +1494,18 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.209"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.209"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1514,9 +1514,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.127"
+version = "1.0.128"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
 dependencies = [
  "itoa",
  "memchr",
@@ -1627,9 +1627,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
 
 [[package]]
 name = "syn"
-version = "2.0.76"
+version = "2.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1755,9 +1755,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.39.3"
+version = "1.40.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
+checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
 dependencies = [
  "backtrace",
  "bytes",
@@ -1794,9 +1794,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.11"
+version = "0.7.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
 dependencies = [
  "bytes",
  "futures-core",
@@ -1900,9 +1900,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.12"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
 
 [[package]]
 name = "unicode-normalization"
@@ -2075,9 +2075,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.26.3"
+version = "0.26.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
+checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a"
 dependencies = [
  "rustls-pki-types",
 ]
diff --git a/bin/ofs/Cargo.toml b/bin/ofs/Cargo.toml
index f93c61acc9..4383cdd5ce 100644
--- a/bin/ofs/Cargo.toml
+++ b/bin/ofs/Cargo.toml
@@ -20,7 +20,7 @@ categories = ["filesystem"]
 description = "OpenDAL File System"
 keywords = ["storage", "data", "s3", "fs", "azblob"]
 name = "ofs"
-version = "0.0.11"
+version = "0.0.12"
 
 authors = ["Apache OpenDAL <de...@opendal.apache.org>"]
 edition = "2021"
@@ -35,7 +35,7 @@ clap = { version = "4.5.7", features = ["derive", "env"] }
 env_logger = "0.11.2"
 futures-util = "0.3.30"
 log = "0.4.21"
-opendal = { version = "0.49.0", path = "../../core" }
+opendal = { version = "0.50.0", path = "../../core" }
 sharded-slab = "0.1.7"
 tokio = { version = "1.37.0", features = [
   "fs",
@@ -48,13 +48,13 @@ url = "2.5.0"
 
 [target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]
 fuse3 = { "version" = "0.7.2", "features" = ["tokio-runtime", "unprivileged"] }
-fuse3_opendal = { version = "0.0.6", path = "../../integrations/fuse3" }
+fuse3_opendal = { version = "0.0.7", path = "../../integrations/fuse3" }
 libc = "0.2.154"
 nix = { version = "0.29.0", features = ["user"] }
 
 [target.'cfg(target_os = "windows")'.dependencies]
 cloud-filter = { version = "0.0.5" }
-cloudfilter_opendal = { version = "0.0.0", path = "../../integrations/cloudfilter" }
+cloud_filter_opendal = { version = "0.0.1", path = "../../integrations/cloud_filter" }
 
 [features]
 default = ["services-fs", "services-s3"]
@@ -62,7 +62,7 @@ services-fs = ["opendal/services-fs"]
 services-s3 = ["opendal/services-s3"]
 
 [dev-dependencies]
-opendal = { version = "0.49.0", path = "../../core", features = ["tests"] }
+opendal = { version = "0.50.0", path = "../../core", features = ["tests"] }
 tempfile = "3.10.1"
 test-context = "0.3.0"
 urlencoding = "2.1.3"
diff --git a/bin/ofs/DEPENDENCIES.rust.tsv b/bin/ofs/DEPENDENCIES.rust.tsv
index 55e0f1b3cd..add8a29ebc 100644
--- a/bin/ofs/DEPENDENCIES.rust.tsv
+++ b/bin/ofs/DEPENDENCIES.rust.tsv
@@ -1,6 +1,6 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aho-corasick@1.1.3									X				X	
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
@@ -9,12 +9,12 @@ anstyle@1.0.8		X							X
 anstyle-parse@0.2.5		X							X					
 anstyle-query@1.1.1		X							X					
 anstyle-wincon@3.0.4		X							X					
-anyhow@1.0.86		X							X					
+anyhow@1.0.87		X							X					
 async-notify@0.3.0									X					
-async-trait@0.1.81		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.22.1		X							X					
 bincode@1.3.3									X					
 bitflags@2.6.0		X							X					
@@ -22,24 +22,24 @@ block-buffer@0.10.4		X							X
 bumpalo@3.16.0		X							X					
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 cfg_aliases@0.1.1									X					
 cfg_aliases@0.2.1									X					
 chrono@0.4.38		X							X					
-clap@4.5.16		X							X					
-clap_builder@4.5.15		X							X					
+clap@4.5.17		X							X					
+clap_builder@4.5.17		X							X					
 clap_derive@4.5.13		X							X					
 clap_lex@0.7.2		X							X					
 cloud-filter@0.0.5									X					
-cloudfilter_opendal@0.0.0		X												
+cloud_filter_opendal@0.0.1		X												
 colorchoice@1.0.2		X							X					
 concurrent-queue@2.5.0		X							X					
 const-oid@0.9.6		X							X					
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crossbeam-utils@0.8.20		X							X					
 crunchy@0.2.2									X					
@@ -59,7 +59,7 @@ flagset@0.4.6		X
 fnv@1.0.7		X							X					
 form_urlencoded@1.2.1		X							X					
 fuse3@0.7.2									X					
-fuse3_opendal@0.0.6		X												
+fuse3_opendal@0.0.7		X												
 futures@0.3.30		X							X					
 futures-channel@0.3.30		X							X					
 futures-core@0.3.30		X							X					
@@ -71,7 +71,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 heck@0.5.0		X							X					
 hermit-abi@0.3.9		X							X					
@@ -84,12 +85,12 @@ http-body-util@0.1.2									X
 httparse@1.9.4		X							X					
 humantime@2.1.0		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 is_terminal_polyfill@1.70.1		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
@@ -101,19 +102,19 @@ md-5@0.10.6		X							X
 memchr@2.7.4									X				X	
 memoffset@0.9.1									X					
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 nix@0.28.0									X					
 nix@0.29.0									X					
 nt-time@0.8.1		X							X					
 num-conv@0.1.0		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
-ofs@0.0.11		X												
+object@0.36.4		X							X					
+ofs@0.0.12		X												
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
+opendal@0.50.0		X												
 ordered-multimap@0.7.3									X					
-parking@2.2.0		X							X					
+parking@2.2.1		X							X					
 percent-encoding@2.3.1		X							X					
 pin-project@1.1.5		X							X					
 pin-project-internal@1.1.5		X							X					
@@ -136,17 +137,17 @@ reqwest@0.12.7		X							X
 ring@0.17.8											X			
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustix@0.38.34		X	X						X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustix@0.38.36		X	X						X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -159,7 +160,7 @@ socket2@0.5.7		X							X
 spin@0.9.8									X					
 strsim@0.11.1									X					
 subtle@2.6.1					X									
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 time@0.3.36		X							X					
 time-core@0.1.2		X							X					
@@ -167,10 +168,10 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-macros@2.4.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -182,7 +183,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -199,7 +200,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 which@6.0.3									X					
 widestring@1.1.0		X							X					
 windows@0.58.0		X							X					
diff --git a/bin/oli/Cargo.lock b/bin/oli/Cargo.lock
index dd7c98801f..00501d3e19 100644
--- a/bin/oli/Cargo.lock
+++ b/bin/oli/Cargo.lock
@@ -4,18 +4,18 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
 dependencies = [
  "gimli",
 ]
 
 [[package]]
-name = "adler"
-version = "1.0.2"
+name = "adler2"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
 
 [[package]]
 name = "aes"
@@ -103,9 +103,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.86"
+version = "1.0.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8"
 
 [[package]]
 name = "arc-swap"
@@ -154,14 +154,14 @@ dependencies = [
 
 [[package]]
 name = "async-executor"
-version = "1.13.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
+checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec"
 dependencies = [
  "async-task",
  "concurrent-queue",
- "fastrand 2.1.1",
- "futures-lite 2.3.0",
+ "fastrand",
+ "futures-lite",
  "slab",
 ]
 
@@ -173,61 +173,32 @@ checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
 dependencies = [
  "async-channel 2.3.1",
  "async-executor",
- "async-io 2.3.4",
- "async-lock 3.4.0",
+ "async-io",
+ "async-lock",
  "blocking",
- "futures-lite 2.3.0",
+ "futures-lite",
  "once_cell",
 ]
 
-[[package]]
-name = "async-io"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
-dependencies = [
- "async-lock 2.8.0",
- "autocfg",
- "cfg-if",
- "concurrent-queue",
- "futures-lite 1.13.0",
- "log",
- "parking",
- "polling 2.8.0",
- "rustix 0.37.27",
- "slab",
- "socket2 0.4.10",
- "waker-fn",
-]
-
 [[package]]
 name = "async-io"
 version = "2.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
 dependencies = [
- "async-lock 3.4.0",
+ "async-lock",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.3.0",
+ "futures-lite",
  "parking",
- "polling 3.7.3",
- "rustix 0.38.34",
+ "polling",
+ "rustix",
  "slab",
  "tracing",
  "windows-sys 0.59.0",
 ]
 
-[[package]]
-name = "async-lock"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
-dependencies = [
- "event-listener 2.5.3",
-]
-
 [[package]]
 name = "async-lock"
 version = "3.4.0"
@@ -241,19 +212,19 @@ dependencies = [
 
 [[package]]
 name = "async-std"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615"
 dependencies = [
  "async-channel 1.9.0",
  "async-global-executor",
- "async-io 1.13.0",
- "async-lock 2.8.0",
+ "async-io",
+ "async-lock",
  "crossbeam-utils",
  "futures-channel",
  "futures-core",
  "futures-io",
- "futures-lite 1.13.0",
+ "futures-lite",
  "gloo-timers",
  "kv-log-macro",
  "log",
@@ -308,9 +279,9 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.81"
+version = "0.1.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
+checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -378,29 +349,28 @@ dependencies = [
 
 [[package]]
 name = "backon"
-version = "0.4.4"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d67782c3f868daa71d3533538e98a8e13713231969def7536e8039606fc46bf0"
+checksum = "e4fa97bb310c33c811334143cf64c5bb2b7b3c06e453db6b095d7061eff8f113"
 dependencies = [
- "fastrand 2.1.1",
- "futures-core",
- "pin-project",
+ "fastrand",
+ "gloo-timers",
  "tokio",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.73"
+version = "0.3.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
 dependencies = [
  "addr2line",
- "cc",
  "cfg-if",
  "libc",
  "miniz_oxide",
  "object",
  "rustc-demangle",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -493,7 +463,7 @@ dependencies = [
  "async-channel 2.3.1",
  "async-task",
  "futures-io",
- "futures-lite 2.3.0",
+ "futures-lite",
  "piper",
 ]
 
@@ -585,9 +555,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.1.14"
+version = "1.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932"
+checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
 dependencies = [
  "jobserver",
  "libc",
@@ -646,18 +616,18 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.16"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
+checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac"
 dependencies = [
  "clap_builder",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.5.15"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
+checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73"
 dependencies = [
  "anstream",
  "anstyle",
@@ -744,9 +714,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
 dependencies = [
  "libc",
 ]
@@ -830,9 +800,9 @@ dependencies = [
 
 [[package]]
 name = "dashmap"
-version = "6.0.1"
+version = "6.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "804c8821570c3f8b70230c2ba75ffa5c0f9a4189b9a432b6656c536712acae28"
+checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -1013,15 +983,6 @@ dependencies = [
  "pin-project-lite",
 ]
 
-[[package]]
-name = "fastrand"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
-
 [[package]]
 name = "fastrand"
 version = "2.1.1"
@@ -1122,28 +1083,13 @@ version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
-[[package]]
-name = "futures-lite"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
-dependencies = [
- "fastrand 1.9.0",
- "futures-core",
- "futures-io",
- "memchr",
- "parking",
- "pin-project-lite",
- "waker-fn",
-]
-
 [[package]]
 name = "futures-lite"
 version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
- "fastrand 2.1.1",
+ "fastrand",
  "futures-core",
  "futures-io",
  "parking",
@@ -1225,9 +1171,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.29.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
 
 [[package]]
 name = "glob"
@@ -1237,9 +1183,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "gloo-timers"
-version = "0.2.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
+checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1259,7 +1205,7 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "http",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "slab",
  "tokio",
  "tokio-util",
@@ -1419,20 +1365,20 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.27.2"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
+checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
 dependencies = [
  "futures-util",
  "http",
  "hyper",
  "hyper-util",
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "rustls-pki-types",
  "tokio",
  "tokio-rustls",
  "tower-service",
- "webpki-roots 0.26.3",
+ "webpki-roots 0.26.5",
 ]
 
 [[package]]
@@ -1450,9 +1396,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
+checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1461,7 +1407,7 @@ dependencies = [
  "http-body",
  "hyper",
  "pin-project-lite",
- "socket2 0.5.7",
+ "socket2",
  "tokio",
  "tower",
  "tower-service",
@@ -1513,9 +1459,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.5",
@@ -1540,22 +1486,11 @@ dependencies = [
  "cfg-if",
 ]
 
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi 0.3.9",
- "libc",
- "windows-sys 0.48.0",
-]
-
 [[package]]
 name = "ipnet"
-version = "2.9.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4"
 
 [[package]]
 name = "is_terminal_polyfill"
@@ -1725,12 +1660,6 @@ dependencies = [
  "vcpkg",
 ]
 
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
 [[package]]
 name = "linux-raw-sys"
 version = "0.4.14"
@@ -1807,11 +1736,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.4"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
 dependencies = [
- "adler",
+ "adler2",
 ]
 
 [[package]]
@@ -1832,7 +1761,7 @@ version = "0.12.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "32cf62eb4dd975d2dde76432fb1075c49e3ee2331cf36f1f8fd4b66550d32b6f"
 dependencies = [
- "async-lock 3.4.0",
+ "async-lock",
  "async-trait",
  "crossbeam-channel",
  "crossbeam-epoch",
@@ -1937,16 +1866,16 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.36.3"
+version = "0.36.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "oli"
-version = "0.41.10"
+version = "0.41.11"
 dependencies = [
  "anyhow",
  "assert_cmd",
@@ -1972,7 +1901,7 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opendal"
-version = "0.49.2"
+version = "0.50.0"
 dependencies = [
  "anyhow",
  "async-tls",
@@ -1983,7 +1912,7 @@ dependencies = [
  "bytes",
  "chrono",
  "crc32c",
- "dashmap 6.0.1",
+ "dashmap 6.1.0",
  "etcd-client",
  "flagset",
  "futures",
@@ -2035,9 +1964,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.2.0"
+version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
 
 [[package]]
 name = "parking_lot"
@@ -2135,7 +2064,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
 dependencies = [
  "fixedbitset",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
 ]
 
 [[package]]
@@ -2177,7 +2106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
 dependencies = [
  "atomic-waker",
- "fastrand 2.1.1",
+ "fastrand",
  "futures-io",
 ]
 
@@ -2225,22 +2154,6 @@ version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
-[[package]]
-name = "polling"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if",
- "concurrent-queue",
- "libc",
- "log",
- "pin-project-lite",
- "windows-sys 0.48.0",
-]
-
 [[package]]
 name = "polling"
 version = "3.7.3"
@@ -2251,7 +2164,7 @@ dependencies = [
  "concurrent-queue",
  "hermit-abi 0.4.0",
  "pin-project-lite",
- "rustix 0.38.34",
+ "rustix",
  "tracing",
  "windows-sys 0.59.0",
 ]
@@ -2322,9 +2235,9 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc"
+checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995"
 dependencies = [
  "bytes",
  "prost-derive",
@@ -2332,9 +2245,9 @@ dependencies = [
 
 [[package]]
 name = "prost-build"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bb182580f71dd070f88d01ce3de9f4da5021db7115d2e1c3605a754153b77c1"
+checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302"
 dependencies = [
  "bytes",
  "heck",
@@ -2353,9 +2266,9 @@ dependencies = [
 
 [[package]]
 name = "prost-derive"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca"
+checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac"
 dependencies = [
  "anyhow",
  "itertools",
@@ -2366,9 +2279,9 @@ dependencies = [
 
 [[package]]
 name = "prost-types"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee5168b05f49d4b0ca581206eb14a7b22fafd963efe729ac48eb03266e25cc2"
+checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519"
 dependencies = [
  "prost",
 ]
@@ -2421,17 +2334,17 @@ dependencies = [
 
 [[package]]
 name = "quinn"
-version = "0.11.3"
+version = "0.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156"
+checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684"
 dependencies = [
  "bytes",
  "pin-project-lite",
  "quinn-proto",
  "quinn-udp",
  "rustc-hash 2.0.0",
- "rustls 0.23.12",
- "socket2 0.5.7",
+ "rustls 0.23.13",
+ "socket2",
  "thiserror",
  "tokio",
  "tracing",
@@ -2439,15 +2352,15 @@ dependencies = [
 
 [[package]]
 name = "quinn-proto"
-version = "0.11.6"
+version = "0.11.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd"
+checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6"
 dependencies = [
  "bytes",
  "rand",
  "ring",
  "rustc-hash 2.0.0",
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "slab",
  "thiserror",
  "tinyvec",
@@ -2456,15 +2369,15 @@ dependencies = [
 
 [[package]]
 name = "quinn-udp"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285"
+checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
 dependencies = [
  "libc",
  "once_cell",
- "socket2 0.5.7",
+ "socket2",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -2534,13 +2447,13 @@ dependencies = [
  "percent-encoding",
  "pin-project-lite",
  "rand",
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "rustls-native-certs",
  "rustls-pemfile 2.1.3",
  "rustls-pki-types",
  "ryu",
  "sha1_smol",
- "socket2 0.5.7",
+ "socket2",
  "tokio",
  "tokio-retry",
  "tokio-rustls",
@@ -2661,7 +2574,7 @@ dependencies = [
  "percent-encoding",
  "pin-project-lite",
  "quinn",
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "rustls-pemfile 2.1.3",
  "rustls-pki-types",
  "serde",
@@ -2677,7 +2590,7 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
- "webpki-roots 0.26.3",
+ "webpki-roots 0.26.5",
  "windows-registry",
 ]
 
@@ -2758,37 +2671,23 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
 
 [[package]]
 name = "rustc_version"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
 dependencies = [
  "semver",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.37.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.34"
+version = "0.38.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36"
 dependencies = [
  "bitflags 2.6.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.14",
+ "linux-raw-sys",
  "windows-sys 0.52.0",
 ]
 
@@ -2806,24 +2705,24 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.23.12"
+version = "0.23.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
+checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8"
 dependencies = [
  "log",
  "once_cell",
  "ring",
  "rustls-pki-types",
- "rustls-webpki 0.102.6",
+ "rustls-webpki 0.102.8",
  "subtle",
  "zeroize",
 ]
 
 [[package]]
 name = "rustls-native-certs"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa"
+checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5"
 dependencies = [
  "openssl-probe",
  "rustls-pemfile 2.1.3",
@@ -2869,9 +2768,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.6"
+version = "0.102.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
+checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
 dependencies = [
  "ring",
  "rustls-pki-types",
@@ -2910,11 +2809,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b"
 dependencies = [
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -2978,18 +2877,18 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.209"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.209"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2998,9 +2897,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.127"
+version = "1.0.128"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
 dependencies = [
  "itoa",
  "memchr",
@@ -3131,16 +3030,6 @@ version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
-[[package]]
-name = "socket2"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
-
 [[package]]
 name = "socket2"
 version = "0.5.7"
@@ -3189,7 +3078,7 @@ dependencies = [
  "async-tls",
  "async-trait",
  "chrono",
- "futures-lite 2.3.0",
+ "futures-lite",
  "lazy-regex",
  "log",
  "pin-project",
@@ -3199,9 +3088,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.76"
+version = "2.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3236,9 +3125,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
 dependencies = [
  "cfg-if",
- "fastrand 2.1.1",
+ "fastrand",
  "once_cell",
- "rustix 0.38.34",
+ "rustix",
  "windows-sys 0.59.0",
 ]
 
@@ -3325,9 +3214,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.39.3"
+version = "1.40.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
+checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
 dependencies = [
  "backtrace",
  "bytes",
@@ -3335,7 +3224,7 @@ dependencies = [
  "mio",
  "parking_lot 0.12.3",
  "pin-project-lite",
- "socket2 0.5.7",
+ "socket2",
  "tokio-macros",
  "windows-sys 0.52.0",
 ]
@@ -3368,16 +3257,16 @@ version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
 dependencies = [
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "rustls-pki-types",
  "tokio",
 ]
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.15"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
+checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -3386,9 +3275,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.11"
+version = "0.7.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
 dependencies = [
  "bytes",
  "futures-core",
@@ -3424,7 +3313,7 @@ version = "0.22.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
 dependencies = [
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -3433,9 +3322,9 @@ dependencies = [
 
 [[package]]
 name = "tonic"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38659f4a91aba8598d27821589f5db7dddd94601e7a01b1e485a50e5484c7401"
+checksum = "c6f6ba989e4b2c58ae83d862d3a3e27690b6e3ae630d0deb59f3697f32aa88ad"
 dependencies = [
  "async-stream",
  "async-trait",
@@ -3453,7 +3342,7 @@ dependencies = [
  "pin-project",
  "prost",
  "rustls-pemfile 2.1.3",
- "socket2 0.5.7",
+ "socket2",
  "tokio",
  "tokio-rustls",
  "tokio-stream",
@@ -3465,9 +3354,9 @@ dependencies = [
 
 [[package]]
 name = "tonic-build"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "568392c5a2bd0020723e3f387891176aabafe36fd9fcd074ad309dfa0c8eb964"
+checksum = "fe4ee8877250136bd7e3d2331632810a4df4ea5e004656990d8d66d2f5ee8a67"
 dependencies = [
  "prettyplease",
  "proc-macro2",
@@ -3580,9 +3469,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.12"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
 
 [[package]]
 name = "unicode-normalization"
@@ -3653,12 +3542,6 @@ dependencies = [
  "libc",
 ]
 
-[[package]]
-name = "waker-fn"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
-
 [[package]]
 name = "walkdir"
 version = "2.5.0"
@@ -3795,9 +3678,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.26.3"
+version = "0.26.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
+checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a"
 dependencies = [
  "rustls-pki-types",
 ]
diff --git a/bin/oli/Cargo.toml b/bin/oli/Cargo.toml
index 87f4d2dd92..7ebb2ce39d 100644
--- a/bin/oli/Cargo.toml
+++ b/bin/oli/Cargo.toml
@@ -27,7 +27,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.41.10"
+version = "0.41.11"
 
 [features]
 # Enable services dashmap support
@@ -60,7 +60,7 @@ dirs = "5.0.1"
 env_logger = "0.11"
 futures = "0.3"
 log = "0.4"
-opendal = { version = "0.49.0", path = "../../core", features = [
+opendal = { version = "0.50.0", path = "../../core", features = [
   # These are default features before v0.46. TODO: change to optional features
   "services-azblob",
   "services-azdls",
diff --git a/bin/oli/DEPENDENCIES.rust.tsv b/bin/oli/DEPENDENCIES.rust.tsv
index 6f2d9286ba..8c67577e80 100644
--- a/bin/oli/DEPENDENCIES.rust.tsv
+++ b/bin/oli/DEPENDENCIES.rust.tsv
@@ -1,6 +1,6 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 aho-corasick@1.1.3									X				X	
 android-tzdata@0.1.1		X							X					
@@ -10,11 +10,11 @@ anstyle@1.0.8		X							X
 anstyle-parse@0.2.5		X							X					
 anstyle-query@1.1.1		X							X					
 anstyle-wincon@3.0.4		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -25,19 +25,19 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
-clap@4.5.16		X							X					
-clap_builder@4.5.15		X							X					
+clap@4.5.17		X							X					
+clap_builder@4.5.17		X							X					
 clap_lex@0.7.2		X							X					
 colorchoice@1.0.2		X							X					
 const-oid@0.9.6		X							X					
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -65,7 +65,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -77,14 +78,14 @@ http-body-util@0.1.2									X
 httparse@1.9.4		X							X					
 humantime@2.1.0		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
-indexmap@2.4.0		X							X					
+indexmap@2.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 is_terminal_polyfill@1.70.1		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
@@ -97,7 +98,7 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -105,10 +106,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
-oli@0.41.10		X												
+object@0.36.4		X							X					
+oli@0.41.11		X												
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
+opendal@0.50.0		X												
 option-ext@0.2.0										X				
 ordered-multimap@0.7.3									X					
 pbkdf2@0.12.2		X							X					
@@ -141,18 +142,18 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_spanned@0.6.7		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
@@ -167,7 +168,7 @@ spin@0.9.8									X
 spki@0.7.3		X							X					
 strsim@0.11.1									X					
 subtle@2.6.1					X									
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 thiserror@1.0.63		X							X					
 thiserror-impl@1.0.63		X							X					
@@ -177,10 +178,10 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-macros@2.4.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 toml@0.8.19		X							X					
 toml_datetime@0.6.8		X							X					
 toml_edit@0.22.20		X							X					
@@ -193,7 +194,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -210,7 +211,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
diff --git a/bindings/c/Cargo.toml b/bindings/c/Cargo.toml
index 88cf1f227c..3306e1605f 100644
--- a/bindings/c/Cargo.toml
+++ b/bindings/c/Cargo.toml
@@ -25,7 +25,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.44.12"
+version = "0.44.13"
 
 [lib]
 crate-type = ["cdylib", "staticlib"]
diff --git a/bindings/c/DEPENDENCIES.rust.tsv b/bindings/c/DEPENDENCIES.rust.tsv
index 5491f911e0..13da645f35 100644
--- a/bindings/c/DEPENDENCIES.rust.tsv
+++ b/bindings/c/DEPENDENCIES.rust.tsv
@@ -1,15 +1,15 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 atty@0.2.14									X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -22,7 +22,7 @@ byteorder@1.5.0									X				X
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
 cbindgen@0.26.0										X				
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
@@ -32,7 +32,7 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -55,7 +55,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.12.3		X							X					
 hashbrown@0.14.5		X							X					
 heck@0.4.1		X							X					
@@ -69,14 +70,14 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 indexmap@1.9.3		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
 jsonwebtoken@9.3.0									X					
@@ -88,7 +89,7 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -96,10 +97,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-c@0.44.12		X												
+opendal@0.50.0		X												
+opendal-c@0.44.13		X												
 ordered-multimap@0.7.3									X					
 os_str_bytes@6.6.1		X							X					
 pbkdf2@0.12.2		X							X					
@@ -128,19 +129,19 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustix@0.38.34		X	X						X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustix@0.38.36		X	X						X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -155,7 +156,7 @@ spki@0.7.3		X							X
 strsim@0.10.0									X					
 subtle@2.6.1					X									
 syn@1.0.109		X							X					
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 tempfile@3.12.0		X							X					
 termcolor@1.4.1									X				X	
@@ -168,10 +169,10 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-macros@2.4.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 toml@0.5.11		X							X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
@@ -182,7 +183,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -198,7 +199,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 winapi@0.3.9		X							X					
 winapi-i686-pc-windows-gnu@0.4.0		X							X					
 winapi-util@0.1.9									X				X	
diff --git a/bindings/cpp/Cargo.toml b/bindings/cpp/Cargo.toml
index dcc8242f59..2a626093ae 100644
--- a/bindings/cpp/Cargo.toml
+++ b/bindings/cpp/Cargo.toml
@@ -25,7 +25,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.45.10"
+version = "0.45.11"
 
 [lib]
 crate-type = ["staticlib"]
diff --git a/bindings/cpp/DEPENDENCIES.rust.tsv b/bindings/cpp/DEPENDENCIES.rust.tsv
index 5495d0342d..98f14c8b89 100644
--- a/bindings/cpp/DEPENDENCIES.rust.tsv
+++ b/bindings/cpp/DEPENDENCIES.rust.tsv
@@ -1,14 +1,14 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -18,7 +18,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
@@ -27,14 +27,14 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
-cxx@1.0.126		X							X					
-cxx-build@1.0.126		X							X					
-cxxbridge-flags@1.0.126		X							X					
-cxxbridge-macro@1.0.126		X							X					
+cxx@1.0.128		X							X					
+cxx-build@1.0.128		X							X					
+cxxbridge-flags@1.0.128		X							X					
+cxxbridge-macro@1.0.128		X							X					
 der@0.7.9		X							X					
 deranged@0.3.11		X							X					
 digest@0.10.7		X							X					
@@ -53,7 +53,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -64,13 +65,13 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
 jsonwebtoken@9.3.0									X					
@@ -82,7 +83,7 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -90,10 +91,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-cpp@0.45.10		X												
+opendal@0.50.0		X												
+opendal-cpp@0.45.11		X												
 ordered-multimap@0.7.3									X					
 pbkdf2@0.12.2		X							X					
 pem@3.0.4									X					
@@ -121,19 +122,19 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scratch@1.0.7		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -146,7 +147,7 @@ socket2@0.5.7		X							X
 spin@0.9.8									X					
 spki@0.7.3		X							X					
 subtle@2.6.1					X									
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 termcolor@1.4.1									X				X	
 thiserror@1.0.63		X							X					
@@ -157,9 +158,9 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -169,7 +170,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 unicode-width@0.1.13		X							X					
 untrusted@0.9.0								X						
@@ -186,7 +187,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 winapi-util@0.1.9									X				X	
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
diff --git a/bindings/dotnet/Cargo.toml b/bindings/dotnet/Cargo.toml
index 22fad672d2..a2657ddcc0 100644
--- a/bindings/dotnet/Cargo.toml
+++ b/bindings/dotnet/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "opendal-dotnet"
 publish = false
-version = "0.1.8"
+version = "0.1.9"
 
 authors = ["Apache OpenDAL <de...@opendal.apache.org>"]
 edition = "2021"
diff --git a/bindings/dotnet/DEPENDENCIES.rust.tsv b/bindings/dotnet/DEPENDENCIES.rust.tsv
index 06de406dba..e3b3c7d3bc 100644
--- a/bindings/dotnet/DEPENDENCIES.rust.tsv
+++ b/bindings/dotnet/DEPENDENCIES.rust.tsv
@@ -1,14 +1,14 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -18,7 +18,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
@@ -26,7 +26,7 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -48,7 +48,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -59,13 +60,13 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
 jsonwebtoken@9.3.0									X					
@@ -76,7 +77,7 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -84,10 +85,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-dotnet@0.1.8		X												
+opendal@0.50.0		X												
+opendal-dotnet@0.1.9		X												
 ordered-multimap@0.7.3									X					
 pbkdf2@0.12.2		X							X					
 pem@3.0.4									X					
@@ -115,18 +116,18 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -139,7 +140,7 @@ socket2@0.5.7		X							X
 spin@0.9.8									X					
 spki@0.7.3		X							X					
 subtle@2.6.1					X									
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 thiserror@1.0.63		X							X					
 thiserror-impl@1.0.63		X							X					
@@ -149,9 +150,9 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -161,7 +162,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -177,7 +178,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
diff --git a/bindings/haskell/Cargo.toml b/bindings/haskell/Cargo.toml
index a8e70adb0d..92219c03ce 100644
--- a/bindings/haskell/Cargo.toml
+++ b/bindings/haskell/Cargo.toml
@@ -25,7 +25,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.44.10"
+version = "0.44.11"
 
 [lib]
 crate-type = ["cdylib"]
diff --git a/bindings/haskell/DEPENDENCIES.rust.tsv b/bindings/haskell/DEPENDENCIES.rust.tsv
index 7da8b38e3f..5b91ec2bc8 100644
--- a/bindings/haskell/DEPENDENCIES.rust.tsv
+++ b/bindings/haskell/DEPENDENCIES.rust.tsv
@@ -1,14 +1,14 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -18,7 +18,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
@@ -26,7 +26,7 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -48,7 +48,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -59,13 +60,13 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
 jsonwebtoken@9.3.0									X					
@@ -76,7 +77,7 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -84,10 +85,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-hs@0.44.10		X												
+opendal@0.50.0		X												
+opendal-hs@0.44.11		X												
 ordered-multimap@0.7.3									X					
 pbkdf2@0.12.2		X							X					
 pem@3.0.4									X					
@@ -115,18 +116,18 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -139,7 +140,7 @@ socket2@0.5.7		X							X
 spin@0.9.8									X					
 spki@0.7.3		X							X					
 subtle@2.6.1					X									
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 thiserror@1.0.63		X							X					
 thiserror-impl@1.0.63		X							X					
@@ -149,9 +150,9 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -161,7 +162,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -177,7 +178,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
diff --git a/bindings/haskell/opendal.cabal b/bindings/haskell/opendal.cabal
index eed84093d9..f6d0abc666 100644
--- a/bindings/haskell/opendal.cabal
+++ b/bindings/haskell/opendal.cabal
@@ -17,7 +17,7 @@ cabal-version:      3.0
 -- under the License.
 
 name:               opendal
-version:            0.44.10.0
+version:            0.44.11.0
 license:            Apache-2.0
 synopsis:           Apache OpenDAL™ Haskell Binding
 description:
diff --git a/bindings/java/Cargo.toml b/bindings/java/Cargo.toml
index e9b27e5683..63dab9ee96 100644
--- a/bindings/java/Cargo.toml
+++ b/bindings/java/Cargo.toml
@@ -25,7 +25,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.47.2"
+version = "0.47.3"
 
 [lib]
 crate-type = ["cdylib"]
diff --git a/bindings/java/DEPENDENCIES.rust.tsv b/bindings/java/DEPENDENCIES.rust.tsv
index 5d394223a5..5380120c25 100644
--- a/bindings/java/DEPENDENCIES.rust.tsv
+++ b/bindings/java/DEPENDENCIES.rust.tsv
@@ -1,17 +1,17 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
+anyhow@1.0.87		X							X					
 arc-swap@1.7.1		X							X					
-async-trait@0.1.81		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
 awaitable@0.4.0									X					
 awaitable-error@0.1.0									X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -23,7 +23,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cesu8@1.1.0		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
@@ -34,7 +34,7 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -58,7 +58,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -69,13 +70,13 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 jni@0.21.1		X							X					
 jni-sys@0.3.0		X							X					
@@ -90,7 +91,7 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -99,15 +100,14 @@ num-derive@0.3.3		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-num_cpus@1.16.0		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-java@0.47.2		X												
-openssh@0.10.5		X							X					
-openssh-sftp-client@0.14.6									X					
-openssh-sftp-client-lowlevel@0.6.0									X					
-openssh-sftp-error@0.4.0									X					
+opendal@0.50.0		X												
+opendal-java@0.47.3		X												
+openssh@0.11.2		X							X					
+openssh-sftp-client@0.15.0									X					
+openssh-sftp-client-lowlevel@0.7.0									X					
+openssh-sftp-error@0.5.0									X					
 openssh-sftp-protocol@0.24.0									X					
 openssh-sftp-protocol-error@0.1.0									X					
 ordered-multimap@0.7.3									X					
@@ -140,21 +140,21 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustix@0.38.34		X	X						X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustix@0.38.36		X	X						X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 same-file@1.0.6									X				X	
 scopeguard@1.2.0		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -173,7 +173,7 @@ ssh_format_error@0.1.0									X
 stable_deref_trait@1.2.0		X							X					
 subtle@2.6.1					X									
 syn@1.0.109		X							X					
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 tempfile@3.12.0		X							X					
 thin-vec@0.2.13		X							X					
@@ -185,12 +185,11 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-io-utility@0.7.6									X					
 tokio-macros@2.4.0									X					
-tokio-pipe@0.2.12		X							X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -202,7 +201,7 @@ triomphe@0.1.11		X							X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -220,7 +219,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 winapi-util@0.1.9									X				X	
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
diff --git a/bindings/java/pom.xml b/bindings/java/pom.xml
index b9b1762219..9aa80a2f42 100644
--- a/bindings/java/pom.xml
+++ b/bindings/java/pom.xml
@@ -32,7 +32,7 @@
 
     <groupId>org.apache.opendal</groupId>
     <artifactId>opendal</artifactId>
-    <version>0.47.2</version>
+    <version>0.47.3</version>
 
     <name>Apache OpenDAL™</name>
     <description>
diff --git a/bindings/lua/Cargo.toml b/bindings/lua/Cargo.toml
index eb047fca03..7e83a00f2b 100644
--- a/bindings/lua/Cargo.toml
+++ b/bindings/lua/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "opendal-lua"
 publish = false
-version = "0.1.8"
+version = "0.1.9"
 
 authors = ["Apache OpenDAL <de...@opendal.apache.org>"]
 edition = "2021"
diff --git a/bindings/lua/DEPENDENCIES.rust.tsv b/bindings/lua/DEPENDENCIES.rust.tsv
index ed17991034..2daa2d2799 100644
--- a/bindings/lua/DEPENDENCIES.rust.tsv
+++ b/bindings/lua/DEPENDENCIES.rust.tsv
@@ -1,15 +1,15 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 aho-corasick@1.1.3									X				X	
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -20,7 +20,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
@@ -28,7 +28,7 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -51,7 +51,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -62,13 +63,13 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itertools@0.12.1		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
@@ -80,10 +81,10 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 mlua@0.9.9									X					
-mlua-sys@0.6.2									X					
+mlua-sys@0.6.3									X					
 mlua_derive@0.9.3									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -91,10 +92,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-lua@0.1.8		X												
+opendal@0.50.0		X												
+opendal-lua@0.1.9		X												
 ordered-multimap@0.7.3									X					
 pbkdf2@0.12.2		X							X					
 pem@3.0.4									X					
@@ -129,18 +130,18 @@ rsa@0.9.6		X							X
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
 rustc-hash@2.0.0		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -154,7 +155,7 @@ spin@0.9.8									X
 spki@0.7.3		X							X					
 subtle@2.6.1					X									
 syn@1.0.109		X							X					
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 thiserror@1.0.63		X							X					
 thiserror-impl@1.0.63		X							X					
@@ -164,9 +165,9 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -176,7 +177,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -192,7 +193,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
diff --git a/bindings/lua/opendal-0.1.8-1.rockspec b/bindings/lua/opendal-0.1.9-1.rockspec
similarity index 96%
rename from bindings/lua/opendal-0.1.8-1.rockspec
rename to bindings/lua/opendal-0.1.9-1.rockspec
index bed4b82280..9624271782 100644
--- a/bindings/lua/opendal-0.1.8-1.rockspec
+++ b/bindings/lua/opendal-0.1.9-1.rockspec
@@ -1,5 +1,5 @@
 package = "opendal"
-version = "0.1.8-1"
+version = "0.1.9-1"
 
 source = {
     url = "git+https://github.com/apache/opendal/",
diff --git a/bindings/nodejs/Cargo.toml b/bindings/nodejs/Cargo.toml
index da1d35493b..b783dd3932 100644
--- a/bindings/nodejs/Cargo.toml
+++ b/bindings/nodejs/Cargo.toml
@@ -25,7 +25,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.47.4"
+version = "0.47.5"
 
 [features]
 default = [
diff --git a/bindings/nodejs/DEPENDENCIES.rust.tsv b/bindings/nodejs/DEPENDENCIES.rust.tsv
index ce8d1624c9..6a5ab6907d 100644
--- a/bindings/nodejs/DEPENDENCIES.rust.tsv
+++ b/bindings/nodejs/DEPENDENCIES.rust.tsv
@@ -1,15 +1,15 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 aho-corasick@1.1.3									X				X	
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -20,7 +20,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
@@ -29,7 +29,7 @@ const-random@0.1.18		X							X
 const-random-macro@0.1.16		X							X					
 convert_case@0.6.0									X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -53,7 +53,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -64,13 +65,13 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
 jsonwebtoken@9.3.0									X					
@@ -82,7 +83,7 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 napi@2.16.9									X					
 napi-build@2.1.3									X					
@@ -95,10 +96,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-nodejs@0.47.4		X												
+opendal@0.50.0		X												
+opendal-nodejs@0.47.5		X												
 ordered-multimap@0.7.3									X					
 pbkdf2@0.12.2		X							X					
 pem@3.0.4									X					
@@ -129,18 +130,18 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -153,7 +154,7 @@ socket2@0.5.7		X							X
 spin@0.9.8									X					
 spki@0.7.3		X							X					
 subtle@2.6.1					X									
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 thiserror@1.0.63		X							X					
 thiserror-impl@1.0.63		X							X					
@@ -163,9 +164,9 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -175,7 +176,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 unicode-segmentation@1.11.0		X							X					
 untrusted@0.9.0								X						
@@ -192,7 +193,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
diff --git a/bindings/nodejs/npm/darwin-arm64/package.json b/bindings/nodejs/npm/darwin-arm64/package.json
index 78c4dedf2e..00f5ba25b1 100644
--- a/bindings/nodejs/npm/darwin-arm64/package.json
+++ b/bindings/nodejs/npm/darwin-arm64/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@opendal/lib-darwin-arm64",
   "repository": "git@github.com/apache/opendal.git",
-  "version": "0.47.4",
+  "version": "0.47.5",
   "os": [
     "darwin"
   ],
diff --git a/bindings/nodejs/npm/darwin-x64/package.json b/bindings/nodejs/npm/darwin-x64/package.json
index fac83a583e..7bcc86d4ec 100644
--- a/bindings/nodejs/npm/darwin-x64/package.json
+++ b/bindings/nodejs/npm/darwin-x64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@opendal/lib-darwin-x64",
-  "version": "0.47.4",
+  "version": "0.47.5",
   "repository": "git@github.com/apache/opendal.git",
   "os": [
     "darwin"
diff --git a/bindings/nodejs/npm/linux-arm64-gnu/package.json b/bindings/nodejs/npm/linux-arm64-gnu/package.json
index 6ed1ec4af2..1898ab21e5 100644
--- a/bindings/nodejs/npm/linux-arm64-gnu/package.json
+++ b/bindings/nodejs/npm/linux-arm64-gnu/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@opendal/lib-linux-arm64-gnu",
-  "version": "0.47.4",
+  "version": "0.47.5",
   "repository": "git@github.com/apache/opendal.git",
   "os": [
     "linux"
diff --git a/bindings/nodejs/npm/linux-arm64-musl/package.json b/bindings/nodejs/npm/linux-arm64-musl/package.json
index a59282606a..3c41a0ec1d 100644
--- a/bindings/nodejs/npm/linux-arm64-musl/package.json
+++ b/bindings/nodejs/npm/linux-arm64-musl/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@opendal/lib-linux-arm64-musl",
-  "version": "0.47.4",
+  "version": "0.47.5",
   "repository": "git@github.com/apache/opendal.git",
   "os": [
     "linux"
diff --git a/bindings/nodejs/npm/linux-x64-gnu/package.json b/bindings/nodejs/npm/linux-x64-gnu/package.json
index 9803124470..8c807d07cb 100644
--- a/bindings/nodejs/npm/linux-x64-gnu/package.json
+++ b/bindings/nodejs/npm/linux-x64-gnu/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@opendal/lib-linux-x64-gnu",
-  "version": "0.47.4",
+  "version": "0.47.5",
   "repository": "git@github.com/apache/opendal.git",
   "os": [
     "linux"
diff --git a/bindings/nodejs/npm/win32-arm64-msvc/package.json b/bindings/nodejs/npm/win32-arm64-msvc/package.json
index 7f5144ce83..280b8cd990 100644
--- a/bindings/nodejs/npm/win32-arm64-msvc/package.json
+++ b/bindings/nodejs/npm/win32-arm64-msvc/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@opendal/lib-win32-arm64-msvc",
-  "version": "0.47.4",
+  "version": "0.47.5",
   "repository": "git@github.com/apache/opendal.git",
   "os": [
     "win32"
diff --git a/bindings/nodejs/npm/win32-x64-msvc/package.json b/bindings/nodejs/npm/win32-x64-msvc/package.json
index 6f14811dbc..9ad2e8b754 100644
--- a/bindings/nodejs/npm/win32-x64-msvc/package.json
+++ b/bindings/nodejs/npm/win32-x64-msvc/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@opendal/lib-win32-x64-msvc",
-  "version": "0.47.4",
+  "version": "0.47.5",
   "repository": "git@github.com/apache/opendal.git",
   "os": [
     "win32"
diff --git a/bindings/nodejs/package.json b/bindings/nodejs/package.json
index 8fed333815..8e2cf2b113 100644
--- a/bindings/nodejs/package.json
+++ b/bindings/nodejs/package.json
@@ -1,7 +1,7 @@
 {
   "name": "opendal",
   "author": "Apache OpenDAL <de...@opendal.apache.org>",
-  "version": "0.47.4",
+  "version": "0.47.5",
   "license": "Apache-2.0",
   "main": "index.js",
   "types": "index.d.ts",
diff --git a/bindings/ocaml/DEPENDENCIES.rust.tsv b/bindings/ocaml/DEPENDENCIES.rust.tsv
index 9261317285..d0a3446bca 100644
--- a/bindings/ocaml/DEPENDENCIES.rust.tsv
+++ b/bindings/ocaml/DEPENDENCIES.rust.tsv
@@ -1,14 +1,14 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -18,7 +18,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
@@ -26,7 +26,7 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -49,7 +49,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -60,13 +61,13 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
 jsonwebtoken@9.3.0									X					
@@ -77,7 +78,7 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -85,16 +86,14 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
-ocaml@1.0.0-beta.5								X						
-ocaml-boxroot-sys@0.2.0									X					
-ocaml-build@1.0.0-beta.4								X						
-ocaml-derive@1.0.0-beta.5								X						
-ocaml-interop@0.8.8									X					
-ocaml-sys@0.22.3								X						
-ocaml-sys@0.23.0								X						
+object@0.36.4		X							X					
+ocaml@1.0.1								X						
+ocaml-boxroot-sys@0.3.1									X					
+ocaml-build@1.0.0								X						
+ocaml-derive@1.0.0								X						
+ocaml-sys@0.24.0								X						
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
+opendal@0.50.0		X												
 opendal-ocaml@0.0.0		X												
 ordered-multimap@0.7.3									X					
 pbkdf2@0.12.2		X							X					
@@ -123,18 +122,18 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -146,10 +145,8 @@ smallvec@1.13.2		X							X
 socket2@0.5.7		X							X					
 spin@0.9.8									X					
 spki@0.7.3		X							X					
-static_assertions@1.1.0		X							X					
 subtle@2.6.1					X									
-syn@1.0.109		X							X					
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 thiserror@1.0.63		X							X					
 thiserror-impl@1.0.63		X							X					
@@ -159,9 +156,9 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -171,7 +168,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -187,7 +184,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
diff --git a/bindings/php/Cargo.toml b/bindings/php/Cargo.toml
index 2f931bd7a2..ea9ccbbb68 100644
--- a/bindings/php/Cargo.toml
+++ b/bindings/php/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "opendal-php"
 publish = false
-version = "0.1.8"
+version = "0.1.9"
 
 authors = ["Apache OpenDAL <de...@opendal.apache.org>"]
 edition = "2021"
diff --git a/bindings/php/DEPENDENCIES.rust.tsv b/bindings/php/DEPENDENCIES.rust.tsv
index 1d34f9bd5c..f72ee95b6f 100644
--- a/bindings/php/DEPENDENCIES.rust.tsv
+++ b/bindings/php/DEPENDENCIES.rust.tsv
@@ -1,15 +1,14 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
 adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -27,7 +26,7 @@ camino@1.1.9		X							X
 cargo-platform@0.1.8		X							X					
 cargo_metadata@0.14.2									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cexpr@0.6.0		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
@@ -39,7 +38,7 @@ const-random-macro@0.1.16		X							X
 constant_time_eq@0.1.5							X							
 core-foundation@0.9.4		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crc32fast@1.4.2		X							X					
 crossbeam-utils@0.8.20		X							X					
@@ -74,8 +73,9 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
 glob@0.3.1		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -86,14 +86,14 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 ident_case@1.0.1		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 jobserver@0.1.32		X							X					
 js-sys@0.3.70		X							X					
@@ -110,7 +110,6 @@ md-5@0.10.6		X							X
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
 minimal-lexical@0.2.1		X							X					
-miniz_oxide@0.7.4		X							X					X
 miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 native-tls@0.2.12		X							X					
@@ -121,10 +120,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-php@0.1.8		X												
+opendal@0.50.0		X												
+opendal-php@0.1.9		X												
 openssl@0.10.66		X												
 openssl-macros@0.1.1		X							X					
 openssl-probe@0.1.5		X							X					
@@ -169,24 +168,24 @@ rsa@0.9.6		X							X
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
 rustc-hash@1.1.0		X							X					
-rustc_version@0.4.0		X							X					
-rustix@0.38.34		X	X						X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustix@0.38.36		X	X						X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 same-file@1.0.6									X				X	
-schannel@0.1.23									X					
+schannel@0.1.24									X					
 scopeguard@1.2.0		X							X					
 scrypt@0.11.0		X							X					
 security-framework@2.11.1		X							X					
 security-framework-sys@2.11.1		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -202,7 +201,7 @@ spki@0.7.3		X							X
 strsim@0.10.0									X					
 subtle@2.6.1					X									
 syn@1.0.109		X							X					
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 tempfile@3.12.0		X							X					
 thiserror@1.0.63		X							X					
@@ -213,9 +212,9 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -226,7 +225,7 @@ try-lock@0.2.5									X
 typenum@1.17.0		X							X					
 unicase@2.7.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 ureq@2.10.1		X							X					
@@ -245,7 +244,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 which@4.4.2									X					
 winapi-util@0.1.9									X				X	
 windows-core@0.52.0		X							X					
diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml
index d4244181f7..6b14ca13b0 100644
--- a/bindings/python/Cargo.toml
+++ b/bindings/python/Cargo.toml
@@ -25,7 +25,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.45.9"
+version = "0.45.10"
 
 [features]
 default = [
diff --git a/bindings/python/DEPENDENCIES.rust.tsv b/bindings/python/DEPENDENCIES.rust.tsv
index 96fef5c4ca..87e49c20d6 100644
--- a/bindings/python/DEPENDENCIES.rust.tsv
+++ b/bindings/python/DEPENDENCIES.rust.tsv
@@ -1,17 +1,17 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
+anyhow@1.0.87		X							X					
 arc-swap@1.7.1		X							X					
-async-trait@0.1.81		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
 awaitable@0.4.0									X					
 awaitable-error@0.1.0									X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -23,7 +23,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 cipher@0.4.4		X							X					
@@ -32,7 +32,7 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -57,7 +57,8 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 heck@0.4.1		X							X					
 hermit-abi@0.3.9		X							X					
@@ -69,14 +70,14 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 indoc@2.0.5		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
 jsonwebtoken@9.3.0									X					
@@ -90,7 +91,7 @@ md-5@0.10.6		X							X
 memchr@2.7.4									X				X	
 memoffset@0.9.1									X					
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 num-bigint@0.4.6		X							X					
 num-bigint-dig@0.8.4		X							X					
@@ -99,14 +100,14 @@ num-derive@0.3.3		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-python@0.45.9		X												
-openssh@0.10.5		X							X					
-openssh-sftp-client@0.14.6									X					
-openssh-sftp-client-lowlevel@0.6.0									X					
-openssh-sftp-error@0.4.0									X					
+opendal@0.50.0		X												
+opendal-python@0.45.10		X												
+openssh@0.11.2		X							X					
+openssh-sftp-client@0.15.0									X					
+openssh-sftp-client-lowlevel@0.7.0									X					
+openssh-sftp-error@0.5.0									X					
 openssh-sftp-protocol@0.24.0									X					
 openssh-sftp-protocol-error@0.1.0									X					
 ordered-multimap@0.7.3									X					
@@ -146,20 +147,20 @@ ring@0.17.8											X
 rsa@0.9.6		X							X					
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustix@0.38.34		X	X						X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustix@0.38.36		X	X						X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scopeguard@1.2.0		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -178,7 +179,7 @@ ssh_format_error@0.1.0									X
 stable_deref_trait@1.2.0		X							X					
 subtle@2.6.1					X									
 syn@1.0.109		X							X					
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 target-lexicon@0.12.16			X											
 tempfile@3.12.0		X							X					
@@ -191,12 +192,11 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-io-utility@0.7.6									X					
 tokio-macros@2.4.0									X					
-tokio-pipe@0.2.12		X							X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -208,7 +208,7 @@ triomphe@0.1.11		X							X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 unindent@0.2.3		X							X					
 untrusted@0.9.0								X						
@@ -226,7 +226,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
diff --git a/bindings/python/tests/test_read.py b/bindings/python/tests/test_read.py
index aa4b8711fb..ddbd5f08a9 100644
--- a/bindings/python/tests/test_read.py
+++ b/bindings/python/tests/test_read.py
@@ -102,7 +102,14 @@ async def test_async_reader(service_name, operator, async_operator):
         assert read_content == content
 
     async with await async_operator.open(filename, "rb") as reader:
-        read_content = await reader.read(size + 1)
+        read_content = bytearray()
+        while True:
+            chunk = await reader.read(size + 1)
+            if not chunk:
+                break
+            read_content.extend(chunk)
+
+        read_content = bytes(read_content)
         assert read_content is not None
         assert read_content == content
 
diff --git a/bindings/ruby/Cargo.toml b/bindings/ruby/Cargo.toml
index 7f1adf0de1..e938d939e6 100644
--- a/bindings/ruby/Cargo.toml
+++ b/bindings/ruby/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "opendal-ruby"
 publish = false
-version = "0.1.8"
+version = "0.1.9"
 
 authors = ["Apache OpenDAL <de...@opendal.apache.org>"]
 edition = "2021"
diff --git a/bindings/ruby/DEPENDENCIES.rust.tsv b/bindings/ruby/DEPENDENCIES.rust.tsv
index 01f96745c0..2c0d886312 100644
--- a/bindings/ruby/DEPENDENCIES.rust.tsv
+++ b/bindings/ruby/DEPENDENCIES.rust.tsv
@@ -1,15 +1,15 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 aes@0.8.4		X							X					
 aho-corasick@1.1.3									X				X	
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.21.7		X							X					
 base64@0.22.1		X							X					
 base64ct@1.6.0		X							X					
@@ -21,7 +21,7 @@ bumpalo@3.16.0		X							X
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
 cbc@0.1.2		X							X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cexpr@0.6.0		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
@@ -31,7 +31,7 @@ const-oid@0.9.6		X							X
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
@@ -54,8 +54,9 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
 glob@0.3.1		X							X					
+gloo-timers@0.3.0		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -66,13 +67,13 @@ http-body@1.0.1									X
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
 inout@0.1.3		X							X					
-ipnet@2.9.0		X							X					
+ipnet@2.10.0		X							X					
 itertools@0.12.1		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
@@ -89,7 +90,7 @@ md-5@0.10.6		X							X
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
 minimal-lexical@0.2.1		X							X					
-miniz_oxide@0.7.4		X							X					X
+miniz_oxide@0.8.0		X							X					X
 mio@1.0.2									X					
 nom@7.1.3									X					
 num-bigint@0.4.6		X							X					
@@ -98,10 +99,10 @@ num-conv@0.1.0		X							X
 num-integer@0.1.46		X							X					
 num-iter@0.1.45		X							X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
-opendal-ruby@0.1.8		X												
+opendal@0.50.0		X												
+opendal-ruby@0.1.9		X												
 ordered-multimap@0.7.3									X					
 pbkdf2@0.12.2		X							X					
 pem@3.0.4									X					
@@ -136,18 +137,18 @@ rsa@0.9.6		X							X
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
 rustc-hash@1.1.0		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 salsa20@0.10.2		X							X					
 scrypt@0.11.0		X							X					
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -162,7 +163,7 @@ spin@0.9.8									X
 spki@0.7.3		X							X					
 subtle@2.6.1					X									
 syn@1.0.109		X							X					
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 thiserror@1.0.63		X							X					
 thiserror-impl@1.0.63		X							X					
@@ -172,9 +173,9 @@ time-macros@0.2.18		X							X
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
+tokio@1.40.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
@@ -184,7 +185,7 @@ trim-in-place@0.1.7									X
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -200,7 +201,7 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
diff --git a/bindings/ruby/lib/opendal_ruby/version.rb b/bindings/ruby/lib/opendal_ruby/version.rb
index a5927bb892..e5ff657873 100644
--- a/bindings/ruby/lib/opendal_ruby/version.rb
+++ b/bindings/ruby/lib/opendal_ruby/version.rb
@@ -18,5 +18,5 @@
 # frozen_string_literal: true
 
 module OpenDAL
-  VERSION = "0.1.0"
+  VERSION = "0.1.9"
 end
diff --git a/core/Cargo.lock b/core/Cargo.lock
index 8149ddc7a2..eacc8122a3 100644
--- a/core/Cargo.lock
+++ b/core/Cargo.lock
@@ -13,19 +13,13 @@ dependencies = [
 
 [[package]]
 name = "addr2line"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
 dependencies = [
  "gimli",
 ]
 
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
 [[package]]
 name = "adler2"
 version = "2.0.0"
@@ -169,9 +163,9 @@ checksum = "ea50b14b7a4b9343f8c627a7a53c52076482bd4bdad0a24fd3ec533ed616cc2c"
 
 [[package]]
 name = "anyhow"
-version = "1.0.86"
+version = "1.0.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8"
 
 [[package]]
 name = "approx"
@@ -248,7 +242,7 @@ checksum = "affbba0d438add06462a0371997575927bc05052f7ec486e7a4ca405c956c3d7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -276,9 +270,9 @@ dependencies = [
 
 [[package]]
 name = "async-executor"
-version = "1.13.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
+checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec"
 dependencies = [
  "async-task",
  "concurrent-queue",
@@ -295,61 +289,32 @@ checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
 dependencies = [
  "async-channel 2.3.1",
  "async-executor",
- "async-io 2.3.4",
- "async-lock 3.4.0",
+ "async-io",
+ "async-lock",
  "blocking",
  "futures-lite 2.3.0",
  "once_cell",
 ]
 
-[[package]]
-name = "async-io"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
-dependencies = [
- "async-lock 2.8.0",
- "autocfg",
- "cfg-if",
- "concurrent-queue",
- "futures-lite 1.13.0",
- "log",
- "parking",
- "polling 2.8.0",
- "rustix 0.37.27",
- "slab",
- "socket2 0.4.10",
- "waker-fn",
-]
-
 [[package]]
 name = "async-io"
 version = "2.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
 dependencies = [
- "async-lock 3.4.0",
+ "async-lock",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
  "futures-lite 2.3.0",
  "parking",
- "polling 3.7.3",
- "rustix 0.38.34",
+ "polling",
+ "rustix",
  "slab",
  "tracing",
  "windows-sys 0.59.0",
 ]
 
-[[package]]
-name = "async-lock"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
-dependencies = [
- "event-listener 2.5.3",
-]
-
 [[package]]
 name = "async-lock"
 version = "3.4.0"
@@ -380,25 +345,25 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
 name = "async-std"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615"
 dependencies = [
  "async-channel 1.9.0",
  "async-global-executor",
- "async-io 1.13.0",
- "async-lock 2.8.0",
+ "async-io",
+ "async-lock",
  "crossbeam-utils",
  "futures-channel",
  "futures-core",
  "futures-io",
- "futures-lite 1.13.0",
- "gloo-timers 0.2.6",
+ "futures-lite 2.3.0",
+ "gloo-timers",
  "kv-log-macro",
  "log",
  "memchr",
@@ -428,7 +393,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -452,13 +417,13 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.81"
+version = "0.1.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
+checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -469,7 +434,7 @@ checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c"
 dependencies = [
  "futures",
  "pharos",
- "rustc_version 0.4.0",
+ "rustc_version",
 ]
 
 [[package]]
@@ -498,9 +463,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "atomic_lib"
-version = "0.39.0"
+version = "0.39.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "858bfa5f57658b74589eb3254a212446e8582c6072af4c05946e87be1d7e4694"
+checksum = "e00b300ec3db6984694cd41cd84a738feeb4f6f916a13aa2ab733074319daecc"
 dependencies = [
  "base64 0.21.7",
  "rand 0.8.5",
@@ -510,6 +475,7 @@ dependencies = [
  "serde_jcs",
  "serde_json",
  "tracing",
+ "ulid",
  "ureq",
  "url",
  "urlencoding",
@@ -523,7 +489,7 @@ checksum = "62f7df18977a1ee03650ee4b31b4aefed6d56bac188760b6e37610400fe8d4bb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -568,9 +534,9 @@ checksum = "d5b3469636cdf8543cceab175efca534471f36eee12fb8374aba00eb5e7e7f8a"
 
 [[package]]
 name = "aws-config"
-version = "1.5.5"
+version = "1.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e95816a168520d72c0e7680c405a5a8c1fb6a035b4bc4b9d7b0de8e1a941697"
+checksum = "848d7b9b605720989929279fa644ce8f244d0ce3146fcca5b70e4eb7b3c020fc"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -598,9 +564,9 @@ dependencies = [
 
 [[package]]
 name = "aws-credential-types"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e16838e6c9e12125face1c1eff1343c75e3ff540de98ff7ebd61874a89bcfeb9"
+checksum = "60e8f6b615cb5fc60a98132268508ad104310f0cfb25a1c22eee76efdf9154da"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-runtime-api",
@@ -610,15 +576,16 @@ dependencies = [
 
 [[package]]
 name = "aws-runtime"
-version = "1.4.0"
+version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f42c2d4218de4dcd890a109461e2f799a1a2ba3bcd2cde9af88360f5df9266c6"
+checksum = "a10d5c055aa540164d9561a0e2e74ad30f0dcf7393c3a92f6733ddf9c5762468"
 dependencies = [
  "aws-credential-types",
  "aws-sigv4",
  "aws-smithy-async",
  "aws-smithy-eventstream",
  "aws-smithy-http",
+ "aws-smithy-runtime",
  "aws-smithy-runtime-api",
  "aws-smithy-types",
  "aws-types",
@@ -635,9 +602,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-s3"
-version = "1.46.0"
+version = "1.49.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4abf69a87be33b6f125a93d5046b5f7395c26d1f449bf8d3927f5577463b6de0"
+checksum = "e518950d4ac43508c8bfc2fe4e24b0752d99eab80134461d5e162dcda0214b55"
 dependencies = [
  "ahash 0.8.11",
  "aws-credential-types",
@@ -670,9 +637,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-sso"
-version = "1.39.0"
+version = "1.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11822090cf501c316c6f75711d77b96fba30658e3867a7762e5e2f5d32d31e81"
+checksum = "27bf24cd0d389daa923e974b0e7c38daf308fc21e963c049f57980235017175e"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -692,9 +659,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-ssooidc"
-version = "1.40.0"
+version = "1.43.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78a2a06ff89176123945d1bbe865603c4d7101bea216a550bb4d2e4e9ba74d74"
+checksum = "3b43b3220f1c46ac0e9dcc0a97d94b93305dacb36d1dd393996300c6b9b74364"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -714,9 +681,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-sts"
-version = "1.39.0"
+version = "1.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a20a91795850826a6f456f4a48eff1dfa59a0e69bdbf5b8c50518fd372106574"
+checksum = "d1c46924fb1add65bba55636e12812cae2febf68c0f37361766f627ddcca91ce"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -737,9 +704,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sigv4"
-version = "1.2.3"
+version = "1.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5df1b0fa6be58efe9d4ccc257df0a53b89cd8909e86591a13ca54817c87517be"
+checksum = "cc8db6904450bafe7473c6ca9123f88cc11089e41a025408f992db4e22d3be68"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-eventstream",
@@ -798,9 +765,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-eventstream"
-version = "0.60.4"
+version = "0.60.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6363078f927f612b970edf9d1903ef5cef9a64d1e8423525ebb1f0a1633c858"
+checksum = "cef7d0a272725f87e51ba2bf89f8c21e4df61b9e49ae1ac367a6d69916ef7c90"
 dependencies = [
  "aws-smithy-types",
  "bytes",
@@ -809,9 +776,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-http"
-version = "0.60.9"
+version = "0.60.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9cd0ae3d97daa0a2bf377a4d8e8e1362cae590c4a1aad0d40058ebca18eb91e"
+checksum = "5c8bc3e8fdc6b8d07d976e301c02fe553f72a39b7a9fea820e023268467d7ab6"
 dependencies = [
  "aws-smithy-eventstream",
  "aws-smithy-runtime-api",
@@ -849,9 +816,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-runtime"
-version = "1.6.3"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0abbf454960d0db2ad12684a1640120e7557294b0ff8e2f11236290a1b293225"
+checksum = "d1ce695746394772e7000b39fe073095db6d45a862d0767dd5ad0ac0d7f8eb87"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-http",
@@ -893,9 +860,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-types"
-version = "1.2.2"
+version = "1.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cee7cadb433c781d3299b916fbf620fea813bf38f49db282fb6858141a05cc8"
+checksum = "03701449087215b5369c7ea17fef0dd5d24cb93439ec5af0c7615f58c3f22605"
 dependencies = [
  "base64-simd",
  "bytes",
@@ -919,9 +886,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-xml"
-version = "0.60.8"
+version = "0.60.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d123fbc2a4adc3c301652ba8e149bf4bc1d1725affb9784eb20c953ace06bf55"
+checksum = "ab0b0166827aa700d3dc519f72f8b3a91c35d0b8d042dc5d643a91e6f80648fc"
 dependencies = [
  "xmlparser",
 ]
@@ -936,7 +903,7 @@ dependencies = [
  "aws-smithy-async",
  "aws-smithy-runtime-api",
  "aws-smithy-types",
- "rustc_version 0.4.0",
+ "rustc_version",
  "tracing",
 ]
 
@@ -1034,28 +1001,28 @@ dependencies = [
 
 [[package]]
 name = "backon"
-version = "1.0.1"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "274cb2897ebb0ed1d2f70adb956fb0a0384aa208eea7f2845fb7aa6cd7f39277"
+checksum = "e4fa97bb310c33c811334143cf64c5bb2b7b3c06e453db6b095d7061eff8f113"
 dependencies = [
  "fastrand 2.1.1",
- "gloo-timers 0.3.0",
+ "gloo-timers",
  "tokio",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.73"
+version = "0.3.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
 dependencies = [
  "addr2line",
- "cc",
  "cfg-if",
  "libc",
- "miniz_oxide 0.7.4",
+ "miniz_oxide",
  "object",
  "rustc-demangle",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -1150,7 +1117,7 @@ dependencies = [
  "regex",
  "rustc-hash 1.1.0",
  "shlex",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -1172,7 +1139,7 @@ dependencies = [
  "regex",
  "rustc-hash 1.1.0",
  "shlex",
- "syn 2.0.76",
+ "syn 2.0.77",
  "which",
 ]
 
@@ -1288,7 +1255,7 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
  "syn_derive",
 ]
 
@@ -1302,7 +1269,7 @@ dependencies = [
  "base64 0.13.1",
  "bitvec",
  "hex",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "js-sys",
  "once_cell",
  "rand 0.8.5",
@@ -1349,9 +1316,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce"
 
 [[package]]
 name = "bytemuck"
-version = "1.17.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31"
+checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
 
 [[package]]
 name = "byteorder"
@@ -1439,7 +1406,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
 dependencies = [
  "camino",
  "cargo-platform",
- "semver 1.0.23",
+ "semver",
  "serde",
  "serde_json",
 ]
@@ -1461,9 +1428,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.1.14"
+version = "1.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932"
+checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
 dependencies = [
  "jobserver",
  "libc",
@@ -1504,7 +1471,7 @@ dependencies = [
  "rustc_lexer",
  "serde",
  "serde_json",
- "serde_with 3.9.0",
+ "serde_with",
  "smol_str",
  "stacker",
  "thiserror",
@@ -1520,7 +1487,7 @@ dependencies = [
  "itertools 0.10.5",
  "serde",
  "serde_json",
- "serde_with 3.9.0",
+ "serde_with",
  "smol_str",
  "stacker",
  "thiserror",
@@ -1613,9 +1580,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.16"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
+checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -1623,14 +1590,14 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.5.15"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
+checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim 0.11.1",
+ "strsim",
 ]
 
 [[package]]
@@ -1642,7 +1609,7 @@ dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -1739,8 +1706,8 @@ dependencies = [
  "once_cell",
  "os_pipe",
  "paste",
- "polling 3.7.3",
- "socket2 0.5.7",
+ "polling",
+ "socket2",
  "windows-sys 0.52.0",
 ]
 
@@ -1783,9 +1750,9 @@ dependencies = [
 
 [[package]]
 name = "compio-net"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c6c4fcf2d8c86ac0f13b54c57d35ce351b81b2221a75f3cee286514634eef6e"
+checksum = "04a861ae5202f9633f71fdd99ddeaefec61ef7f984b383dfe6b5d51f647ea75b"
 dependencies = [
  "cfg-if",
  "compio-buf",
@@ -1794,7 +1761,7 @@ dependencies = [
  "compio-runtime",
  "either",
  "libc",
- "socket2 0.5.7",
+ "socket2",
  "widestring",
  "windows-sys 0.52.0",
 ]
@@ -1818,7 +1785,7 @@ dependencies = [
  "scoped-tls",
  "slab",
  "smallvec",
- "socket2 0.5.7",
+ "socket2",
  "windows-sys 0.52.0",
 ]
 
@@ -1902,9 +1869,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
 dependencies = [
  "libc",
 ]
@@ -1936,7 +1903,7 @@ version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47"
 dependencies = [
- "rustc_version 0.4.0",
+ "rustc_version",
 ]
 
 [[package]]
@@ -2092,38 +2059,14 @@ dependencies = [
  "cipher",
 ]
 
-[[package]]
-name = "darling"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
-dependencies = [
- "darling_core 0.13.4",
- "darling_macro 0.13.4",
-]
-
 [[package]]
 name = "darling"
 version = "0.20.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
 dependencies = [
- "darling_core 0.20.10",
- "darling_macro 0.20.10",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim 0.10.0",
- "syn 1.0.109",
+ "darling_core",
+ "darling_macro",
 ]
 
 [[package]]
@@ -2136,19 +2079,8 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim 0.11.1",
- "syn 2.0.76",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
-dependencies = [
- "darling_core 0.13.4",
- "quote",
- "syn 1.0.109",
+ "strsim",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -2157,9 +2089,9 @@ version = "0.20.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
 dependencies = [
- "darling_core 0.20.10",
+ "darling_core",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -2177,9 +2109,9 @@ dependencies = [
 
 [[package]]
 name = "dashmap"
-version = "6.0.1"
+version = "6.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "804c8821570c3f8b70230c2ba75ffa5c0f9a4189b9a432b6656c536712acae28"
+checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -2256,38 +2188,38 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
 name = "derive_builder"
-version = "0.20.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0350b5cb0331628a5916d6c5c0b72e97393b8b6b03b47a9284f4e7f5a405ffd7"
+checksum = "cd33f37ee6a119146a1781d3356a7c26028f83d779b2e04ecd45fdc75c76877b"
 dependencies = [
  "derive_builder_macro",
 ]
 
 [[package]]
 name = "derive_builder_core"
-version = "0.20.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d48cda787f839151732d396ac69e3473923d54312c070ee21e9effcaa8ca0b1d"
+checksum = "7431fa049613920234f22c47fdc33e6cf3ee83067091ea4277a3f8c4587aae38"
 dependencies = [
- "darling 0.20.10",
+ "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
 name = "derive_builder_macro"
-version = "0.20.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b"
+checksum = "4abae7035bf79b9877b779505d8cf3749285b80c43941eda66604841889451dc"
 dependencies = [
  "derive_builder_core",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -2298,7 +2230,7 @@ checksum = "64b697ac90ff296f0fc031ee5a61c7ac31fb9fff50e3fb32873b09223613fc0c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -2310,8 +2242,8 @@ dependencies = [
  "convert_case",
  "proc-macro2",
  "quote",
- "rustc_version 0.4.0",
- "syn 2.0.76",
+ "rustc_version",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -2331,9 +2263,9 @@ checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00"
 
 [[package]]
 name = "diatomic-waker"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af873b6853650fb206431c52fa7bbf6917146b70a8a9979d6d141f5d5394086b"
+checksum = "ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c"
 
 [[package]]
 name = "diff"
@@ -2434,7 +2366,7 @@ dependencies = [
 
 [[package]]
 name = "edge_test_aws_s3_assume_role_with_web_identity"
-version = "0.49.1"
+version = "0.50.0"
 dependencies = [
  "opendal",
  "tokio",
@@ -2443,7 +2375,7 @@ dependencies = [
 
 [[package]]
 name = "edge_test_file_write_on_full_disk"
-version = "0.49.1"
+version = "0.50.0"
 dependencies = [
  "futures",
  "opendal",
@@ -2453,7 +2385,7 @@ dependencies = [
 
 [[package]]
 name = "edge_test_s3_read_on_wasm"
-version = "0.49.1"
+version = "0.50.0"
 dependencies = [
  "opendal",
  "wasm-bindgen",
@@ -2516,14 +2448,14 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
 
 [[package]]
 name = "enum-as-inner"
-version = "0.4.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73"
+checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc"
 dependencies = [
- "heck 0.4.1",
+ "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -2564,10 +2496,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "39bde3ce50a626efeb1caa9ab1083972d178bebb55ca627639c8ded507dfcbde"
 dependencies = [
  "http 1.1.0",
- "prost 0.13.1",
+ "prost 0.13.2",
  "tokio",
  "tokio-stream",
- "tonic 0.12.1",
+ "tonic 0.12.2",
  "tonic-build",
  "tower",
  "tower-service",
@@ -2657,7 +2589,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -2704,7 +2636,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.8.0",
+ "miniz_oxide",
 ]
 
 [[package]]
@@ -2802,7 +2734,7 @@ checksum = "f8db6653cbc621a3810d95d55bd342be3e71181d6df21a4eb29ef986202d3f9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
  "try_map",
 ]
 
@@ -2959,7 +2891,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -3025,7 +2957,7 @@ dependencies = [
  "g2poly",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -3150,9 +3082,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.29.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
 
 [[package]]
 name = "glob"
@@ -3160,18 +3092,6 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
-[[package]]
-name = "gloo-timers"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
-dependencies = [
- "futures-channel",
- "futures-core",
- "js-sys",
- "wasm-bindgen",
-]
-
 [[package]]
 name = "gloo-timers"
 version = "0.3.0"
@@ -3227,7 +3147,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http 0.2.12",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "slab",
  "tokio",
  "tokio-util",
@@ -3246,7 +3166,7 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "http 1.1.0",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "slab",
  "tokio",
  "tokio-util",
@@ -3331,7 +3251,7 @@ dependencies = [
  "rand 0.8.5",
  "regex",
  "roxmltree",
- "socket2 0.5.7",
+ "socket2",
  "thiserror",
  "tokio",
  "url",
@@ -3371,7 +3291,7 @@ checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f"
 dependencies = [
  "atomic-polyfill",
  "hash32",
- "rustc_version 0.4.0",
+ "rustc_version",
  "spin 0.9.8",
  "stable_deref_trait",
 ]
@@ -3406,6 +3326,51 @@ version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
+[[package]]
+name = "hickory-proto"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand 0.8.5",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "hickory-resolver"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243"
+dependencies = [
+ "cfg-if",
+ "futures-util",
+ "hickory-proto",
+ "ipconfig",
+ "lru-cache",
+ "once_cell",
+ "parking_lot 0.12.3",
+ "rand 0.8.5",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
 [[package]]
 name = "hkdf"
 version = "0.12.4"
@@ -3547,7 +3512,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.5.7",
+ "socket2",
  "tokio",
  "tower-service",
  "tracing",
@@ -3593,20 +3558,20 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.27.2"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
+checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
 dependencies = [
  "futures-util",
  "http 1.1.0",
  "hyper 1.4.1",
  "hyper-util",
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "rustls-pki-types",
  "tokio",
  "tokio-rustls 0.26.0",
  "tower-service",
- "webpki-roots 0.26.3",
+ "webpki-roots 0.26.5",
 ]
 
 [[package]]
@@ -3636,9 +3601,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
+checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -3647,7 +3612,7 @@ dependencies = [
  "http-body 1.0.1",
  "hyper 1.4.1",
  "pin-project-lite",
- "socket2 0.5.7",
+ "socket2",
  "tokio",
  "tower",
  "tower-service",
@@ -3685,11 +3650,10 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.2.3"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
 dependencies = [
- "matches",
  "unicode-bidi",
  "unicode-normalization",
 ]
@@ -3717,9 +3681,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.5",
@@ -3746,7 +3710,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strum",
- "syn 2.0.76",
+ "syn 2.0.77",
  "thiserror",
 ]
 
@@ -3769,17 +3733,6 @@ dependencies = [
  "cfg-if",
 ]
 
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi 0.3.9",
- "libc",
- "windows-sys 0.48.0",
-]
-
 [[package]]
 name = "io-uring"
 version = "0.6.4"
@@ -3796,7 +3749,7 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.7",
+ "socket2",
  "widestring",
  "windows-sys 0.48.0",
  "winreg",
@@ -3804,9 +3757,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.9.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4"
 
 [[package]]
 name = "is-terminal"
@@ -3970,7 +3923,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -4056,9 +4009,9 @@ dependencies = [
 
 [[package]]
 name = "libsqlite3-sys"
-version = "0.28.0"
+version = "0.30.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f"
+checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149"
 dependencies = [
  "cc",
  "pkg-config",
@@ -4094,12 +4047,6 @@ version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
 [[package]]
 name = "linux-raw-sys"
 version = "0.4.14"
@@ -4171,12 +4118,6 @@ dependencies = [
  "regex-automata 0.1.10",
 ]
 
-[[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
 [[package]]
 name = "matchit"
 version = "0.7.3"
@@ -4247,7 +4188,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -4297,15 +4238,6 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
-[[package]]
-name = "miniz_oxide"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
-dependencies = [
- "adler",
-]
-
 [[package]]
 name = "miniz_oxide"
 version = "0.8.0"
@@ -4337,25 +4269,13 @@ dependencies = [
  "windows-sys 0.48.0",
 ]
 
-[[package]]
-name = "mio"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
-dependencies = [
- "hermit-abi 0.3.9",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.52.0",
-]
-
 [[package]]
 name = "moka"
 version = "0.12.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "32cf62eb4dd975d2dde76432fb1075c49e3ee2331cf36f1f8fd4b66550d32b6f"
 dependencies = [
- "async-lock 3.4.0",
+ "async-lock",
  "async-trait",
  "crossbeam-channel",
  "crossbeam-epoch",
@@ -4365,7 +4285,7 @@ dependencies = [
  "once_cell",
  "parking_lot 0.12.3",
  "quanta",
- "rustc_version 0.4.0",
+ "rustc_version",
  "smallvec",
  "tagptr",
  "thiserror",
@@ -4375,9 +4295,9 @@ dependencies = [
 
 [[package]]
 name = "mongodb"
-version = "3.0.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60f61f1556ee1d65e0b256e5bbc6d61e10022d1e3df86c23526d469bd832fa24"
+checksum = "c857d71f918b38221baf2fdff7207fec9984b4504901544772b1edf0302d669f"
 dependencies = [
  "async-trait",
  "base64 0.13.1",
@@ -4391,6 +4311,8 @@ dependencies = [
  "futures-io",
  "futures-util",
  "hex",
+ "hickory-proto",
+ "hickory-resolver",
  "hmac",
  "md-5",
  "mongodb-internal-macros",
@@ -4403,19 +4325,17 @@ dependencies = [
  "rustls-pemfile 1.0.4",
  "serde",
  "serde_bytes",
- "serde_with 1.14.0",
+ "serde_with",
  "sha-1",
  "sha2",
- "socket2 0.5.7",
+ "socket2",
  "stringprep",
- "strsim 0.10.0",
+ "strsim",
  "take_mut",
  "thiserror",
  "tokio",
  "tokio-rustls 0.24.1",
  "tokio-util",
- "trust-dns-proto",
- "trust-dns-resolver",
  "typed-builder",
  "uuid",
  "webpki-roots 0.25.4",
@@ -4423,13 +4343,13 @@ dependencies = [
 
 [[package]]
 name = "mongodb-internal-macros"
-version = "3.0.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934305ae9c66ef6a3aa728c66dec8fa2424de4dfcd043c7acaffacae2bf99442"
+checksum = "3a6dbc533e93429a71c44a14c04547ac783b56d3f22e6c4f12b1b994cf93844e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -4445,12 +4365,12 @@ dependencies = [
  "io-uring",
  "libc",
  "memchr",
- "mio 0.8.11",
+ "mio",
  "monoio-macros",
  "nix",
  "once_cell",
  "pin-project-lite",
- "socket2 0.5.7",
+ "socket2",
  "threadpool",
  "windows-sys 0.48.0",
 ]
@@ -4463,7 +4383,7 @@ checksum = "176a5f5e69613d9e88337cf2a65e11135332b4efbcc628404a7c555e4452084c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -4653,9 +4573,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.36.3"
+version = "0.36.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
 dependencies = [
  "memchr",
 ]
@@ -4695,7 +4615,7 @@ checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9"
 
 [[package]]
 name = "opendal"
-version = "0.49.2"
+version = "0.50.0"
 dependencies = [
  "anyhow",
  "async-backtrace",
@@ -4712,7 +4632,7 @@ dependencies = [
  "compio",
  "crc32c",
  "criterion",
- "dashmap 6.0.1",
+ "dashmap 6.1.0",
  "dotenvy",
  "etcd-client",
  "fastrace",
@@ -4749,7 +4669,7 @@ dependencies = [
  "probe",
  "prometheus",
  "prometheus-client",
- "prost 0.13.1",
+ "prost 0.13.2",
  "quick-xml 0.36.1",
  "rand 0.8.5",
  "redb",
@@ -4803,7 +4723,7 @@ dependencies = [
 
 [[package]]
 name = "opendal-examples-basic"
-version = "0.49.1"
+version = "0.50.0"
 dependencies = [
  "futures",
  "opendal",
@@ -4812,7 +4732,7 @@ dependencies = [
 
 [[package]]
 name = "opendal-examples-concurrent-upload"
-version = "0.49.1"
+version = "0.50.0"
 dependencies = [
  "futures",
  "opendal",
@@ -4821,7 +4741,7 @@ dependencies = [
 
 [[package]]
 name = "opendal-examples-multipart-upload"
-version = "0.49.1"
+version = "0.50.0"
 dependencies = [
  "futures",
  "opendal",
@@ -4846,9 +4766,9 @@ dependencies = [
 
 [[package]]
 name = "openssh"
-version = "0.11.0"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f27389e5da64700a3efb7f925e442f824f6e3d4b1c27f75e115a92ad3aecbb1"
+checksum = "cf397b60b682d691bf2c6125b848304ef0df2023a657aa0fc006fd6769c3d8fa"
 dependencies = [
  "libc",
  "once_cell",
@@ -4959,7 +4879,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -4982,9 +4902,9 @@ dependencies = [
 
 [[package]]
 name = "opentelemetry"
-version = "0.24.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96"
+checksum = "803801d3d3b71cd026851a53f974ea03df3d179cb758b260136a6c9e22e196af"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -4996,9 +4916,9 @@ dependencies = [
 
 [[package]]
 name = "opentelemetry-otlp"
-version = "0.17.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b925a602ffb916fb7421276b86756027b37ee708f9dce2dbdcc51739f07e727"
+checksum = "596b1719b3cab83addb20bcbffdf21575279d9436d9ccccfe651a3bf0ab5ab06"
 dependencies = [
  "async-trait",
  "futures-core",
@@ -5006,29 +4926,29 @@ dependencies = [
  "opentelemetry",
  "opentelemetry-proto",
  "opentelemetry_sdk",
- "prost 0.13.1",
+ "prost 0.13.2",
  "thiserror",
  "tokio",
- "tonic 0.12.1",
+ "tonic 0.12.2",
 ]
 
 [[package]]
 name = "opentelemetry-proto"
-version = "0.7.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30ee9f20bff9c984511a02f082dc8ede839e4a9bf15cc2487c8d6fea5ad850d9"
+checksum = "2c43620e8f93359eb7e627a3b16ee92d8585774986f24f2ab010817426c5ce61"
 dependencies = [
  "opentelemetry",
  "opentelemetry_sdk",
- "prost 0.13.1",
- "tonic 0.12.1",
+ "prost 0.13.2",
+ "tonic 0.12.2",
 ]
 
 [[package]]
 name = "opentelemetry_sdk"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df"
+checksum = "e0da0d6b47a3dbc6e9c9e36a0520e25cf943e046843818faaa3f87365a548c82"
 dependencies = [
  "async-trait",
  "futures-channel",
@@ -5088,9 +5008,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.2.0"
+version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
 
 [[package]]
 name = "parking_lot"
@@ -5248,7 +5168,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
 dependencies = [
  "fixedbitset",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
 ]
 
 [[package]]
@@ -5258,7 +5178,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414"
 dependencies = [
  "futures",
- "rustc_version 0.4.0",
+ "rustc_version",
 ]
 
 [[package]]
@@ -5293,7 +5213,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -5375,9 +5295,9 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plotters"
-version = "0.3.6"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3"
+checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"
 dependencies = [
  "num-traits",
  "plotters-backend",
@@ -5388,35 +5308,19 @@ dependencies = [
 
 [[package]]
 name = "plotters-backend"
-version = "0.3.6"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7"
+checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a"
 
 [[package]]
 name = "plotters-svg"
-version = "0.3.6"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705"
+checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670"
 dependencies = [
  "plotters-backend",
 ]
 
-[[package]]
-name = "polling"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if",
- "concurrent-queue",
- "libc",
- "log",
- "pin-project-lite",
- "windows-sys 0.48.0",
-]
-
 [[package]]
 name = "polling"
 version = "3.7.3"
@@ -5427,7 +5331,7 @@ dependencies = [
  "concurrent-queue",
  "hermit-abi 0.4.0",
  "pin-project-lite",
- "rustix 0.38.34",
+ "rustix",
  "tracing",
  "windows-sys 0.59.0",
 ]
@@ -5476,7 +5380,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba"
 dependencies = [
  "proc-macro2",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -5487,9 +5391,9 @@ checksum = "d8e2d2444b730c8f027344c60f9e1f1554d7a3342df9bdd425142ed119a6e5a3"
 
 [[package]]
 name = "proc-macro-crate"
-version = "3.1.0"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b"
 dependencies = [
  "toml_edit",
 ]
@@ -5537,7 +5441,7 @@ dependencies = [
  "hex",
  "lazy_static",
  "procfs-core",
- "rustix 0.38.34",
+ "rustix",
 ]
 
 [[package]]
@@ -5587,7 +5491,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -5602,19 +5506,19 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc"
+checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995"
 dependencies = [
  "bytes",
- "prost-derive 0.13.1",
+ "prost-derive 0.13.2",
 ]
 
 [[package]]
 name = "prost-build"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bb182580f71dd070f88d01ce3de9f4da5021db7115d2e1c3605a754153b77c1"
+checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302"
 dependencies = [
  "bytes",
  "heck 0.5.0",
@@ -5624,10 +5528,10 @@ dependencies = [
  "once_cell",
  "petgraph",
  "prettyplease",
- "prost 0.13.1",
- "prost-types 0.13.1",
+ "prost 0.13.2",
+ "prost-types 0.13.2",
  "regex",
- "syn 2.0.76",
+ "syn 2.0.77",
  "tempfile",
 ]
 
@@ -5641,20 +5545,20 @@ dependencies = [
  "itertools 0.12.1",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
 name = "prost-derive"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca"
+checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac"
 dependencies = [
  "anyhow",
  "itertools 0.13.0",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -5668,11 +5572,11 @@ dependencies = [
 
 [[package]]
 name = "prost-types"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee5168b05f49d4b0ca581206eb14a7b22fafd963efe729ac48eb03266e25cc2"
+checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519"
 dependencies = [
- "prost 0.13.1",
+ "prost 0.13.2",
 ]
 
 [[package]]
@@ -5689,9 +5593,9 @@ checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
 
 [[package]]
 name = "psm"
-version = "0.1.21"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
+checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205"
 dependencies = [
  "cc",
 ]
@@ -5782,17 +5686,17 @@ dependencies = [
 
 [[package]]
 name = "quinn"
-version = "0.11.3"
+version = "0.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156"
+checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684"
 dependencies = [
  "bytes",
  "pin-project-lite",
  "quinn-proto",
  "quinn-udp",
  "rustc-hash 2.0.0",
- "rustls 0.23.12",
- "socket2 0.5.7",
+ "rustls 0.23.13",
+ "socket2",
  "thiserror",
  "tokio",
  "tracing",
@@ -5800,15 +5704,15 @@ dependencies = [
 
 [[package]]
 name = "quinn-proto"
-version = "0.11.6"
+version = "0.11.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd"
+checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6"
 dependencies = [
  "bytes",
  "rand 0.8.5",
  "ring 0.17.8",
  "rustc-hash 2.0.0",
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "slab",
  "thiserror",
  "tinyvec",
@@ -5817,15 +5721,15 @@ dependencies = [
 
 [[package]]
 name = "quinn-udp"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285"
+checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
 dependencies = [
  "libc",
  "once_cell",
- "socket2 0.5.7",
+ "socket2",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -5983,13 +5887,13 @@ dependencies = [
  "percent-encoding",
  "pin-project-lite",
  "rand 0.8.5",
- "rustls 0.23.12",
- "rustls-native-certs 0.7.2",
+ "rustls 0.23.13",
+ "rustls-native-certs 0.7.3",
  "rustls-pemfile 2.1.3",
  "rustls-pki-types",
  "ryu",
  "sha1_smol",
- "socket2 0.5.7",
+ "socket2",
  "tokio",
  "tokio-native-tls",
  "tokio-retry",
@@ -6007,15 +5911,6 @@ dependencies = [
  "bitflags 1.3.2",
 ]
 
-[[package]]
-name = "redox_syscall"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
-dependencies = [
- "bitflags 1.3.2",
-]
-
 [[package]]
 name = "redox_syscall"
 version = "0.5.3"
@@ -6053,7 +5948,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -6063,7 +5958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc31414597d1cd7fdd2422798b7652a6329dda0fe0219e6335a13d5bcaa9aeb6"
 dependencies = [
  "cfg-if",
- "rustix 0.38.34",
+ "rustix",
  "windows 0.58.0",
 ]
 
@@ -6215,7 +6110,7 @@ dependencies = [
  "http-body 1.0.1",
  "http-body-util",
  "hyper 1.4.1",
- "hyper-rustls 0.27.2",
+ "hyper-rustls 0.27.3",
  "hyper-util",
  "ipnet",
  "js-sys",
@@ -6225,7 +6120,7 @@ dependencies = [
  "percent-encoding",
  "pin-project-lite",
  "quinn",
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "rustls-pemfile 2.1.3",
  "rustls-pki-types",
  "serde",
@@ -6241,7 +6136,7 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
- "webpki-roots 0.26.3",
+ "webpki-roots 0.26.5",
  "windows-registry",
 ]
 
@@ -6279,11 +6174,11 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "854ff0b6794d4e0aab5e4486870941caefe9f258e63cad2f21b49a6302377c85"
 dependencies = [
- "darling 0.20.10",
+ "darling",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -6496,56 +6391,33 @@ dependencies = [
 
 [[package]]
 name = "rustc_version"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-dependencies = [
- "semver 0.9.0",
-]
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
 dependencies = [
- "semver 1.0.23",
+ "semver",
 ]
 
 [[package]]
 name = "rustc_version_runtime"
-version = "0.2.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d31b7153270ebf48bf91c65ae5b0c00e749c4cfad505f66530ac74950249582f"
+checksum = "2dd18cd2bae1820af0b6ad5e54f4a51d0f3fcc53b05f845675074efcc7af071d"
 dependencies = [
- "rustc_version 0.2.3",
- "semver 0.9.0",
+ "rustc_version",
+ "semver",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.37.27"
+version = "0.38.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36"
 dependencies = [
  "bitflags 2.6.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.14",
+ "linux-raw-sys",
  "windows-sys 0.52.0",
 ]
 
@@ -6563,15 +6435,15 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.23.12"
+version = "0.23.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
+checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8"
 dependencies = [
  "log",
  "once_cell",
  "ring 0.17.8",
  "rustls-pki-types",
- "rustls-webpki 0.102.6",
+ "rustls-webpki 0.102.8",
  "subtle",
  "zeroize",
 ]
@@ -6590,9 +6462,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-native-certs"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa"
+checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5"
 dependencies = [
  "openssl-probe",
  "rustls-pemfile 2.1.3",
@@ -6638,9 +6510,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.6"
+version = "0.102.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
+checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
 dependencies = [
  "ring 0.17.8",
  "rustls-pki-types",
@@ -6685,11 +6557,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b"
 dependencies = [
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -6769,15 +6641,6 @@ dependencies = [
  "libc",
 ]
 
-[[package]]
-name = "semver"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-dependencies = [
- "semver-parser",
-]
-
 [[package]]
 name = "semver"
 version = "1.0.23"
@@ -6787,12 +6650,6 @@ dependencies = [
  "serde",
 ]
 
-[[package]]
-name = "semver-parser"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-
 [[package]]
 name = "send_wrapper"
 version = "0.6.0"
@@ -6801,9 +6658,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
 
 [[package]]
 name = "serde"
-version = "1.0.209"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
 dependencies = [
  "serde_derive",
 ]
@@ -6819,13 +6676,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.209"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -6841,11 +6698,11 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.127"
+version = "1.0.128"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
 dependencies = [
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "itoa",
  "memchr",
  "ryu",
@@ -6864,16 +6721,6 @@ dependencies = [
  "serde",
 ]
 
-[[package]]
-name = "serde_with"
-version = "1.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff"
-dependencies = [
- "serde",
- "serde_with_macros 1.5.2",
-]
-
 [[package]]
 name = "serde_with"
 version = "3.9.0"
@@ -6884,36 +6731,24 @@ dependencies = [
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "serde",
  "serde_derive",
  "serde_json",
- "serde_with_macros 3.9.0",
+ "serde_with_macros",
  "time",
 ]
 
-[[package]]
-name = "serde_with_macros"
-version = "1.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
-dependencies = [
- "darling 0.13.4",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
 [[package]]
 name = "serde_with_macros"
 version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350"
 dependencies = [
- "darling 0.20.10",
+ "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -7121,16 +6956,6 @@ version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
 
-[[package]]
-name = "socket2"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
-
 [[package]]
 name = "socket2"
 version = "0.5.7"
@@ -7143,9 +6968,9 @@ dependencies = [
 
 [[package]]
 name = "spade"
-version = "2.12.0"
+version = "2.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bd14cf9e23b5241e1b1289ed3b9afc7746c95ead8df52d9254f5ed2d40c561b"
+checksum = "93f5ef1f863aca7d1d7dda7ccfc36a0a4279bd6d3c375176e5e0712e25cb4889"
 dependencies = [
  "hashbrown 0.14.5",
  "num-traits",
@@ -7199,9 +7024,9 @@ dependencies = [
 
 [[package]]
 name = "sqlformat"
-version = "0.2.4"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f895e3734318cc55f1fe66258926c9b910c124d47520339efecbb6c59cec7c1f"
+checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790"
 dependencies = [
  "nom",
  "unicode_categories",
@@ -7209,9 +7034,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx"
-version = "0.8.0"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27144619c6e5802f1380337a209d2ac1c431002dd74c6e60aebff3c506dc4f0c"
+checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e"
 dependencies = [
  "sqlx-core",
  "sqlx-macros",
@@ -7222,9 +7047,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-core"
-version = "0.8.0"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a999083c1af5b5d6c071d34a708a19ba3e02106ad82ef7bbd69f5e48266b613b"
+checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e"
 dependencies = [
  "atoi",
  "byteorder",
@@ -7241,14 +7066,14 @@ dependencies = [
  "hashbrown 0.14.5",
  "hashlink",
  "hex",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "log",
  "memchr",
  "once_cell",
  "paste",
  "percent-encoding",
- "rustls 0.21.12",
- "rustls-pemfile 1.0.4",
+ "rustls 0.23.13",
+ "rustls-pemfile 2.1.3",
  "serde",
  "serde_json",
  "sha2",
@@ -7259,27 +7084,27 @@ dependencies = [
  "tokio-stream",
  "tracing",
  "url",
- "webpki-roots 0.25.4",
+ "webpki-roots 0.26.5",
 ]
 
 [[package]]
 name = "sqlx-macros"
-version = "0.8.0"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a23217eb7d86c584b8cbe0337b9eacf12ab76fe7673c513141ec42565698bb88"
+checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657"
 dependencies = [
  "proc-macro2",
  "quote",
  "sqlx-core",
  "sqlx-macros-core",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
 name = "sqlx-macros-core"
-version = "0.8.0"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a099220ae541c5db479c6424bdf1b200987934033c2584f79a0e1693601e776"
+checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5"
 dependencies = [
  "dotenvy",
  "either",
@@ -7295,7 +7120,7 @@ dependencies = [
  "sqlx-mysql",
  "sqlx-postgres",
  "sqlx-sqlite",
- "syn 2.0.76",
+ "syn 2.0.77",
  "tempfile",
  "tokio",
  "url",
@@ -7303,9 +7128,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-mysql"
-version = "0.8.0"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5afe4c38a9b417b6a9a5eeffe7235d0a106716495536e7727d1c7f4b1ff3eba6"
+checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a"
 dependencies = [
  "atoi",
  "base64 0.22.1",
@@ -7345,9 +7170,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-postgres"
-version = "0.8.0"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1dbb157e65f10dbe01f729339c06d239120221c9ad9fa0ba8408c4cc18ecf21"
+checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8"
 dependencies = [
  "atoi",
  "base64 0.22.1",
@@ -7383,9 +7208,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-sqlite"
-version = "0.8.0"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2cdd83c008a622d94499c0006d8ee5f821f36c89b7d625c900e5dc30b5c5ee"
+checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680"
 dependencies = [
  "atoi",
  "flume",
@@ -7449,15 +7274,15 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 
 [[package]]
 name = "stacker"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a5daa25ea337c85ed954c0496e3bdd2c7308cc3b24cf7b50d04876654c579f"
+checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b"
 dependencies = [
  "cc",
  "cfg-if",
  "libc",
  "psm",
- "windows-sys 0.36.1",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -7502,12 +7327,6 @@ dependencies = [
  "unicode-properties",
 ]
 
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
 [[package]]
 name = "strsim"
 version = "0.11.1"
@@ -7533,7 +7352,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -7562,9 +7381,9 @@ dependencies = [
 
 [[package]]
 name = "surrealdb"
-version = "1.5.4"
+version = "1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "430b7d33686ece41796236416707398574da147f78c6b4e5dc9a10592907029b"
+checksum = "e21f01832ac4cc794b1d3959b6aa669c1eb720b4c8cc2c38f4495560f6587334"
 dependencies = [
  "async-channel 1.9.0",
  "bincode",
@@ -7574,7 +7393,7 @@ dependencies = [
  "futures",
  "futures-concurrency",
  "geo 0.27.0",
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "once_cell",
  "path-clean",
  "pharos",
@@ -7583,7 +7402,7 @@ dependencies = [
  "ring 0.17.8",
  "rust_decimal",
  "rustls 0.21.12",
- "semver 1.0.23",
+ "semver",
  "serde",
  "serde_json",
  "surrealdb-core",
@@ -7602,9 +7421,9 @@ dependencies = [
 
 [[package]]
 name = "surrealdb-core"
-version = "1.5.1"
+version = "1.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3e0c2ab384286d025809460c65e6e24aef7919a6bfb98e961828d687560c2b8"
+checksum = "ccd148e590f41ee5beb013b0f201c66aeffb009a1e436126a741cc53ccd36d60"
 dependencies = [
  "addr",
  "any_ascii",
@@ -7647,7 +7466,7 @@ dependencies = [
  "rust-stemmers",
  "rust_decimal",
  "scrypt",
- "semver 1.0.23",
+ "semver",
  "serde",
  "serde_json",
  "sha1",
@@ -7710,9 +7529,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.76"
+version = "2.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -7728,7 +7547,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -7794,7 +7613,7 @@ dependencies = [
  "cfg-if",
  "fastrand 2.1.1",
  "once_cell",
- "rustix 0.38.34",
+ "rustix",
  "windows-sys 0.59.0",
 ]
 
@@ -7841,7 +7660,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -7892,7 +7711,7 @@ dependencies = [
  "prost 0.12.6",
  "rand 0.8.5",
  "regex",
- "semver 1.0.23",
+ "semver",
  "serde",
  "serde_derive",
  "thiserror",
@@ -7967,20 +7786,21 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.39.3"
+version = "1.38.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
+checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
- "mio 1.0.2",
+ "mio",
+ "num_cpus",
  "parking_lot 0.12.3",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.7",
+ "socket2",
  "tokio-macros",
- "windows-sys 0.52.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -8005,13 +7825,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.4.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -8051,16 +7871,16 @@ version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
 dependencies = [
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "rustls-pki-types",
  "tokio",
 ]
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.15"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
+checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -8084,9 +7904,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.11"
+version = "0.7.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
 dependencies = [
  "bytes",
  "futures-core",
@@ -8104,11 +7924,11 @@ checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
 
 [[package]]
 name = "toml_edit"
-version = "0.21.1"
+version = "0.22.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
 dependencies = [
- "indexmap 2.4.0",
+ "indexmap 2.5.0",
  "toml_datetime",
  "winnow",
 ]
@@ -8145,9 +7965,9 @@ dependencies = [
 
 [[package]]
 name = "tonic"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38659f4a91aba8598d27821589f5db7dddd94601e7a01b1e485a50e5484c7401"
+checksum = "c6f6ba989e4b2c58ae83d862d3a3e27690b6e3ae630d0deb59f3697f32aa88ad"
 dependencies = [
  "async-stream",
  "async-trait",
@@ -8163,9 +7983,9 @@ dependencies = [
  "hyper-util",
  "percent-encoding",
  "pin-project",
- "prost 0.13.1",
+ "prost 0.13.2",
  "rustls-pemfile 2.1.3",
- "socket2 0.5.7",
+ "socket2",
  "tokio",
  "tokio-rustls 0.26.0",
  "tokio-stream",
@@ -8177,15 +7997,15 @@ dependencies = [
 
 [[package]]
 name = "tonic-build"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "568392c5a2bd0020723e3f387891176aabafe36fd9fcd074ad309dfa0c8eb964"
+checksum = "fe4ee8877250136bd7e3d2331632810a4df4ea5e004656990d8d66d2f5ee8a67"
 dependencies = [
  "prettyplease",
  "proc-macro2",
  "prost-build",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -8240,7 +8060,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -8266,9 +8086,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-opentelemetry"
-version = "0.25.0"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b"
+checksum = "5eabc56d23707ad55ba2a0750fc24767125d5a0f51993ba41ad2c441cc7b8dea"
 dependencies = [
  "js-sys",
  "once_cell",
@@ -8347,51 +8167,6 @@ dependencies = [
  "stable_deref_trait",
 ]
 
-[[package]]
-name = "trust-dns-proto"
-version = "0.21.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c31f240f59877c3d4bb3b3ea0ec5a6a0cff07323580ff8c7a605cd7d08b255d"
-dependencies = [
- "async-trait",
- "cfg-if",
- "data-encoding",
- "enum-as-inner",
- "futures-channel",
- "futures-io",
- "futures-util",
- "idna 0.2.3",
- "ipnet",
- "lazy_static",
- "log",
- "rand 0.8.5",
- "smallvec",
- "thiserror",
- "tinyvec",
- "tokio",
- "url",
-]
-
-[[package]]
-name = "trust-dns-resolver"
-version = "0.21.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4ba72c2ea84515690c9fcef4c6c660bb9df3036ed1051686de84605b74fd558"
-dependencies = [
- "cfg-if",
- "futures-util",
- "ipconfig",
- "lazy_static",
- "log",
- "lru-cache",
- "parking_lot 0.12.3",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio",
- "trust-dns-proto",
-]
-
 [[package]]
 name = "try-lock"
 version = "0.2.5"
@@ -8470,9 +8245,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.12"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
 
 [[package]]
 name = "unicode-normalization"
@@ -8551,10 +8326,10 @@ dependencies = [
  "flate2",
  "log",
  "once_cell",
- "rustls 0.23.12",
+ "rustls 0.23.13",
  "rustls-pki-types",
  "url",
- "webpki-roots 0.26.3",
+ "webpki-roots 0.26.5",
 ]
 
 [[package]]
@@ -8711,7 +8486,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
  "wasm-bindgen-shared",
 ]
 
@@ -8745,7 +8520,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -8779,7 +8554,7 @@ checksum = "4b8220be1fa9e4c889b30fd207d4906657e7e90b12e0e6b0c8b8d8709f5de021"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -8861,9 +8636,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "webpki-roots"
-version = "0.26.3"
+version = "0.26.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
+checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a"
 dependencies = [
  "rustls-pki-types",
 ]
@@ -8877,16 +8652,16 @@ dependencies = [
  "either",
  "home",
  "once_cell",
- "rustix 0.38.34",
+ "rustix",
 ]
 
 [[package]]
 name = "whoami"
-version = "1.5.1"
+version = "1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
+checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d"
 dependencies = [
- "redox_syscall 0.4.1",
+ "redox_syscall 0.5.3",
  "wasite",
  "web-sys",
 ]
@@ -8977,7 +8752,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -8988,7 +8763,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
@@ -9021,19 +8796,6 @@ dependencies = [
  "windows-targets 0.52.6",
 ]
 
-[[package]]
-name = "windows-sys"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
-dependencies = [
- "windows_aarch64_msvc 0.36.1",
- "windows_i686_gnu 0.36.1",
- "windows_i686_msvc 0.36.1",
- "windows_x86_64_gnu 0.36.1",
- "windows_x86_64_msvc 0.36.1",
-]
-
 [[package]]
 name = "windows-sys"
 version = "0.48.0"
@@ -9104,12 +8866,6 @@ version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
 
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
-
 [[package]]
 name = "windows_aarch64_msvc"
 version = "0.48.5"
@@ -9122,12 +8878,6 @@ version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
 
-[[package]]
-name = "windows_i686_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
-
 [[package]]
 name = "windows_i686_gnu"
 version = "0.48.5"
@@ -9146,12 +8896,6 @@ version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
 
-[[package]]
-name = "windows_i686_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
-
 [[package]]
 name = "windows_i686_msvc"
 version = "0.48.5"
@@ -9164,12 +8908,6 @@ version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
 
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
-
 [[package]]
 name = "windows_x86_64_gnu"
 version = "0.48.5"
@@ -9194,12 +8932,6 @@ version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
 
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
-
 [[package]]
 name = "windows_x86_64_msvc"
 version = "0.48.5"
@@ -9214,9 +8946,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
 
 [[package]]
 name = "winnow"
-version = "0.5.40"
+version = "0.6.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
 dependencies = [
  "memchr",
 ]
@@ -9242,7 +8974,7 @@ dependencies = [
  "js-sys",
  "log",
  "pharos",
- "rustc_version 0.4.0",
+ "rustc_version",
  "send_wrapper",
  "thiserror",
  "wasm-bindgen",
@@ -9261,9 +8993,9 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.21"
+version = "0.8.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601"
+checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26"
 
 [[package]]
 name = "xmlparser"
@@ -9301,7 +9033,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.76",
+ "syn 2.0.77",
 ]
 
 [[package]]
diff --git a/core/Cargo.toml b/core/Cargo.toml
index 63a3d6b5d4..accbee1cfb 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -28,7 +28,7 @@ homepage = "https://opendal.apache.org/"
 license = "Apache-2.0"
 repository = "https://github.com/apache/opendal"
 rust-version = "1.75"
-version = "0.49.2"
+version = "0.50.0"
 
 [package.metadata.docs.rs]
 all-features = true
@@ -41,7 +41,7 @@ members = [".", "examples/*", "fuzz", "edge/*", "benches/vs_*"]
 edition = "2021"
 license = "Apache-2.0"
 rust-version = "1.75"
-version = "0.49.1"
+version = "0.50.0"
 
 [features]
 default = ["reqwest/rustls-tls", "executors-tokio", "services-memory"]
@@ -53,16 +53,16 @@ default = ["reqwest/rustls-tls", "executors-tokio", "services-memory"]
 #
 # You should never enable this feature unless you are developing opendal.
 tests = [
-    "dep:rand",
-    "dep:sha2",
-    "dep:dotenvy",
-    "layers-blocking",
-    "services-azblob",
-    "services-fs",
-    "services-http",
-    "services-memory",
-    "internal-tokio-rt",
-    "services-s3",
+  "dep:rand",
+  "dep:sha2",
+  "dep:dotenvy",
+  "layers-blocking",
+  "services-azblob",
+  "services-fs",
+  "services-http",
+  "services-memory",
+  "internal-tokio-rt",
+  "services-s3",
 ]
 
 # Enable path cache.
@@ -104,20 +104,20 @@ services-aliyun-drive = []
 services-alluxio = []
 services-atomicserver = ["dep:atomic_lib"]
 services-azblob = [
-    "dep:sha2",
-    "dep:reqsign",
-    "reqsign?/services-azblob",
-    "reqsign?/reqwest_request",
+  "dep:sha2",
+  "dep:reqsign",
+  "reqsign?/services-azblob",
+  "reqsign?/reqwest_request",
 ]
 services-azdls = [
-    "dep:reqsign",
-    "reqsign?/services-azblob",
-    "reqsign?/reqwest_request",
+  "dep:reqsign",
+  "reqsign?/services-azblob",
+  "reqsign?/reqwest_request",
 ]
 services-azfile = [
-    "dep:reqsign",
-    "reqsign?/services-azblob",
-    "reqsign?/reqwest_request",
+  "dep:reqsign",
+  "reqsign?/services-azblob",
+  "reqsign?/reqwest_request",
 ]
 services-b2 = []
 services-cacache = ["dep:cacache"]
@@ -125,9 +125,9 @@ services-chainsafe = []
 services-cloudflare-kv = []
 services-compfs = ["dep:compio"]
 services-cos = [
-    "dep:reqsign",
-    "reqsign?/services-tencent",
-    "reqsign?/reqwest_request",
+  "dep:reqsign",
+  "reqsign?/services-tencent",
+  "reqsign?/reqwest_request",
 ]
 services-d1 = []
 services-dashmap = ["dep:dashmap"]
@@ -138,9 +138,9 @@ services-foundationdb = ["dep:foundationdb"]
 services-fs = ["tokio/fs", "internal-tokio-rt"]
 services-ftp = ["dep:suppaftp", "dep:bb8", "dep:async-tls"]
 services-gcs = [
-    "dep:reqsign",
-    "reqsign?/services-google",
-    "reqsign?/reqwest_request",
+  "dep:reqsign",
+  "reqsign?/services-google",
+  "reqsign?/reqwest_request",
 ]
 services-gdrive = ["internal-path-cache"]
 services-ghac = []
@@ -164,15 +164,15 @@ services-mongodb = ["dep:mongodb"]
 services-monoiofs = ["dep:monoio", "dep:flume"]
 services-mysql = ["dep:sqlx", "sqlx?/mysql"]
 services-obs = [
-    "dep:reqsign",
-    "reqsign?/services-huaweicloud",
-    "reqsign?/reqwest_request",
+  "dep:reqsign",
+  "reqsign?/services-huaweicloud",
+  "reqsign?/reqwest_request",
 ]
 services-onedrive = []
 services-oss = [
-    "dep:reqsign",
-    "reqsign?/services-aliyun",
-    "reqsign?/reqwest_request",
+  "dep:reqsign",
+  "reqsign?/services-aliyun",
+  "reqsign?/reqwest_request",
 ]
 services-pcloud = []
 services-persy = ["dep:persy", "internal-tokio-rt"]
@@ -182,10 +182,10 @@ services-redis = ["dep:redis", "redis?/tokio-rustls-comp"]
 services-redis-native-tls = ["services-redis", "redis?/tokio-native-tls-comp"]
 services-rocksdb = ["dep:rocksdb", "internal-tokio-rt"]
 services-s3 = [
-    "dep:reqsign",
-    "reqsign?/services-aws",
-    "reqsign?/reqwest_request",
-    "dep:crc32c",
+  "dep:reqsign",
+  "reqsign?/services-aws",
+  "reqsign?/reqwest_request",
+  "dep:crc32c",
 ]
 services-seafile = []
 services-sftp = ["dep:openssh", "dep:openssh-sftp-client", "dep:bb8"]
@@ -227,17 +227,17 @@ async-tls = { version = "0.13.0", optional = true }
 # Required dependencies
 anyhow = { version = "1.0.30", features = ["std"] }
 async-trait = "0.1.68"
-backon = { version = "1.0.1", features = ["tokio-sleep"] }
+backon = { version = "1.2", features = ["tokio-sleep"] }
 base64 = "0.22"
 bytes = "1.6"
 chrono = { version = "0.4.28", default-features = false, features = [
-    "clock",
-    "std",
+  "clock",
+  "std",
 ] }
 flagset = "0.4"
 futures = { version = "0.3", default-features = false, features = [
-    "std",
-    "async-await",
+  "std",
+  "async-await",
 ] }
 http = "1.1"
 log = "0.4"
@@ -247,7 +247,7 @@ once_cell = "1"
 percent-encoding = "2"
 quick-xml = { version = "0.36", features = ["serialize", "overlapped-lists"] }
 reqwest = { version = "0.12.2", features = [
-    "stream",
+  "stream",
 ], default-features = false }
 serde = { version = "1", features = ["derive"] }
 serde_json = "1"
@@ -266,7 +266,9 @@ bb8 = { version = "0.8", optional = true }
 prost = { version = "0.13", optional = true }
 sha1 = { version = "0.10.6", optional = true }
 sha2 = { version = "0.10", optional = true }
-sqlx = { version = "0.8.0", features = ["runtime-tokio-rustls"], optional = true }
+sqlx = { version = "0.8.0", features = [
+  "runtime-tokio-rustls",
+], optional = true }
 
 # For http based services.
 reqsign = { version = "0.16", default-features = false, optional = true }
@@ -275,8 +277,8 @@ reqsign = { version = "0.16", default-features = false, optional = true }
 atomic_lib = { version = "0.39.0", optional = true }
 # for services-cacache
 cacache = { version = "13.0", default-features = false, features = [
-    "tokio-runtime",
-    "mmap",
+  "tokio-runtime",
+  "mmap",
 ], optional = true }
 # for services-dashmap
 dashmap = { version = "6", optional = true }
@@ -284,8 +286,8 @@ dashmap = { version = "6", optional = true }
 etcd-client = { version = "0.14", optional = true, features = ["tls"] }
 # for services-foundationdb
 foundationdb = { version = "0.9.0", features = [
-    "embedded-fdb-include",
-    "fdb-7_3",
+  "embedded-fdb-include",
+  "fdb-7_3",
 ], optional = true }
 # for services-hdfs
 hdrs = { version = "0.3.2", optional = true, features = ["async_file"] }
@@ -311,9 +313,9 @@ persy = { version = "1.4.6", optional = true }
 redb = { version = "2", optional = true }
 # for services-redis
 redis = { version = "0.26", features = [
-    "cluster-async",
-    "tokio-comp",
-    "connection-manager",
+  "cluster-async",
+  "tokio-comp",
+  "connection-manager",
 ], optional = true }
 # for services-rocksdb
 rocksdb = { version = "0.21.0", default-features = false, optional = true }
@@ -321,9 +323,9 @@ rocksdb = { version = "0.21.0", default-features = false, optional = true }
 sled = { version = "0.34.7", optional = true }
 # for services-ftp
 suppaftp = { version = "6", default-features = false, features = [
-    "async-secure",
-    "rustls",
-    "async-rustls",
+  "async-secure",
+  "rustls",
+  "async-rustls",
 ], optional = true }
 # for services-tikv
 tikv-client = { version = "0.3.0", optional = true, default-features = false }
@@ -333,20 +335,20 @@ hdfs-native = { version = "0.10", optional = true }
 surrealdb = { version = "1.3.0", optional = true, features = ["protocol-http"] }
 # for services-compfs
 compio = { version = "0.11.0", optional = true, features = [
-    "runtime",
-    "bytes",
-    "polling",
-    "dispatcher",
+  "runtime",
+  "bytes",
+  "polling",
+  "dispatcher",
 ] }
 # for services-s3
 crc32c = { version = "0.6.6", optional = true }
 # for services-monoiofs
 flume = { version = "0.11", optional = true }
 monoio = { version = "0.2.4", optional = true, features = [
-    "sync",
-    "mkdirat",
-    "unlinkat",
-    "renameat",
+  "sync",
+  "mkdirat",
+  "unlinkat",
+  "renameat",
 ] }
 
 # Layers
@@ -363,7 +365,7 @@ mime_guess = { version = "2.0.5", optional = true }
 # for layers-fastrace
 fastrace = { version = "0.7.1", optional = true }
 # for layers-opentelemetry
-opentelemetry = { version = "0.24", optional = true }
+opentelemetry = { version = "0.25", optional = true }
 # for layers-prometheus
 prometheus = { version = "0.13", features = ["process"], optional = true }
 # for layers-prometheus-client
@@ -374,7 +376,7 @@ tracing = { version = "0.1", optional = true }
 probe = { version = "0.5.1", optional = true }
 
 [target.'cfg(target_arch = "wasm32")'.dependencies]
-backon = { version = "1.0.1", features = ["gloo-timers-sleep"] }
+backon = { version = "1.2", features = ["gloo-timers-sleep"] }
 getrandom = { version = "0.2", features = ["js"] }
 tokio = { version = "1.27", features = ["time"] }
 
@@ -384,18 +386,18 @@ dotenvy = "0.15"
 fastrace = { version = "0.7", features = ["enable"] }
 fastrace-jaeger = "0.7"
 libtest-mimic = "0.7"
-opentelemetry = { version = "0.24", default-features = false, features = [
-    "trace",
+opentelemetry = { version = "0.25", default-features = false, features = [
+  "trace",
 ] }
-opentelemetry-otlp = "0.17"
-opentelemetry_sdk = "0.24"
+opentelemetry-otlp = "0.25"
+opentelemetry_sdk = "0.25"
 pretty_assertions = "1"
 rand = "0.8"
 sha2 = "0.10"
 size = "0.4"
 tokio = { version = "1.27", features = ["fs", "macros", "rt-multi-thread"] }
-tracing-opentelemetry = "0.25.0"
+tracing-opentelemetry = "0.26.0"
 tracing-subscriber = { version = "0.3", features = [
-    "env-filter",
-    "tracing-log",
+  "env-filter",
+  "tracing-log",
 ] }
diff --git a/core/DEPENDENCIES.rust.tsv b/core/DEPENDENCIES.rust.tsv
index a43bb1e5e4..eed4b753c4 100644
--- a/core/DEPENDENCIES.rust.tsv
+++ b/core/DEPENDENCIES.rust.tsv
@@ -1,32 +1,34 @@
 crate	0BSD	Apache-2.0	Apache-2.0 WITH LLVM-exception	BSD-2-Clause	BSD-3-Clause	BSL-1.0	CC0-1.0	ISC	MIT	MPL-2.0	OpenSSL	Unicode-DFS-2016	Unlicense	Zlib
-addr2line@0.22.0		X							X					
-adler@1.0.2	X	X							X					
+addr2line@0.24.1		X							X					
+adler2@2.0.0	X	X							X					
 android-tzdata@0.1.1		X							X					
 android_system_properties@0.1.5		X							X					
-anyhow@1.0.86		X							X					
-async-trait@0.1.81		X							X					
+anyhow@1.0.87		X							X					
+async-trait@0.1.82		X							X					
+atomic-waker@1.1.2		X							X					
 autocfg@1.3.0		X							X					
-backon@0.4.4		X												
-backtrace@0.3.73		X							X					
+backon@1.2.0		X												
+backtrace@0.3.74		X							X					
 base64@0.22.1		X							X					
 block-buffer@0.10.4		X							X					
 bumpalo@3.16.0		X							X					
 byteorder@1.5.0									X				X	
 bytes@1.7.1									X					
-cc@1.1.14		X							X					
+cc@1.1.18		X							X					
 cfg-if@1.0.0		X							X					
 chrono@0.4.38		X							X					
 const-oid@0.9.6		X							X					
 const-random@0.1.18		X							X					
 const-random-macro@0.1.16		X							X					
 core-foundation-sys@0.8.7		X							X					
-cpufeatures@0.2.13		X							X					
+cpufeatures@0.2.14		X							X					
 crc32c@0.6.8		X							X					
 crunchy@0.2.2									X					
 crypto-common@0.1.6		X							X					
 digest@0.10.7		X							X					
 dlv-list@0.5.2		X							X					
 dotenvy@0.15.7									X					
+equivalent@1.0.1		X							X					
 fastrand@2.1.1		X							X					
 flagset@0.4.6		X												
 fnv@1.0.7		X							X					
@@ -41,7 +43,10 @@ futures-task@0.3.30		X							X
 futures-util@0.3.30		X							X					
 generic-array@0.14.7									X					
 getrandom@0.2.15		X							X					
-gimli@0.29.0		X							X					
+gimli@0.31.0		X							X					
+gloo-timers@0.3.0		X							X					
+h2@0.4.6									X					
+hashbrown@0.12.3		X							X					
 hashbrown@0.14.5		X							X					
 hermit-abi@0.3.9		X							X					
 hex@0.4.3		X							X					
@@ -51,13 +56,16 @@ http@1.1.0		X							X
 http-body@1.0.1									X					
 http-body-util@0.1.2									X					
 httparse@1.9.4		X							X					
+httpdate@1.0.3		X							X					
 hyper@1.4.1									X					
-hyper-rustls@0.27.2		X						X	X					
-hyper-util@0.1.7									X					
+hyper-rustls@0.27.3		X						X	X					
+hyper-util@0.1.8									X					
 iana-time-zone@0.1.60		X							X					
 iana-time-zone-haiku@0.1.2		X							X					
 idna@0.5.0		X							X					
-ipnet@2.9.0		X							X					
+indexmap@1.9.3		X							X					
+indexmap@2.5.0		X							X					
+ipnet@2.10.0		X							X					
 itoa@1.0.11		X							X					
 js-sys@0.3.70		X							X					
 libc@0.2.158		X							X					
@@ -65,12 +73,13 @@ log@0.4.22		X							X
 md-5@0.10.6		X							X					
 memchr@2.7.4									X				X	
 mime@0.3.17		X							X					
-miniz_oxide@0.7.4		X							X					X
-mio@1.0.2									X					
+miniz_oxide@0.8.0		X							X					X
+mio@0.8.11									X					
 num-traits@0.2.19		X							X					
-object@0.36.3		X							X					
+num_cpus@1.16.0		X							X					
+object@0.36.4		X							X					
 once_cell@1.19.0		X							X					
-opendal@0.49.2		X												
+opendal@0.50.0		X												
 ordered-multimap@0.7.3									X					
 percent-encoding@2.3.1		X							X					
 pin-project@1.1.5		X							X					
@@ -90,16 +99,16 @@ reqwest@0.12.7		X							X
 ring@0.17.8											X			
 rust-ini@0.21.1									X					
 rustc-demangle@0.1.24		X							X					
-rustc_version@0.4.0		X							X					
-rustls@0.23.12		X						X	X					
+rustc_version@0.4.1		X							X					
+rustls@0.23.13		X						X	X					
 rustls-pemfile@2.1.3		X						X	X					
 rustls-pki-types@1.8.0		X							X					
-rustls-webpki@0.102.6								X						
+rustls-webpki@0.102.8								X						
 ryu@1.0.18		X				X								
 semver@1.0.23		X							X					
-serde@1.0.209		X							X					
-serde_derive@1.0.209		X							X					
-serde_json@1.0.127		X							X					
+serde@1.0.210		X							X					
+serde_derive@1.0.210		X							X					
+serde_json@1.0.128		X							X					
 serde_urlencoded@0.7.1		X							X					
 sha1@0.10.6		X							X					
 sha2@0.10.8		X							X					
@@ -109,25 +118,26 @@ smallvec@1.13.2		X							X
 socket2@0.5.7		X							X					
 spin@0.9.8									X					
 subtle@2.6.1					X									
-syn@2.0.76		X							X					
+syn@2.0.77		X							X					
 sync_wrapper@1.0.1		X												
 tiny-keccak@2.0.2							X							
 tinyvec@1.8.0		X							X					X
 tinyvec_macros@0.1.1		X							X					X
-tokio@1.39.3									X					
-tokio-macros@2.4.0									X					
+tokio@1.38.1									X					
+tokio-macros@2.3.0									X					
 tokio-rustls@0.26.0		X							X					
-tokio-util@0.7.11									X					
+tokio-util@0.7.12									X					
 tower@0.4.13									X					
 tower-layer@0.3.3									X					
 tower-service@0.3.3									X					
 tracing@0.1.40									X					
+tracing-attributes@0.1.27									X					
 tracing-core@0.1.32									X					
 trim-in-place@0.1.7									X					
 try-lock@0.2.5									X					
 typenum@1.17.0		X							X					
 unicode-bidi@0.3.15		X							X					
-unicode-ident@1.0.12		X							X			X		
+unicode-ident@1.0.13		X							X			X		
 unicode-normalization@0.1.23		X							X					
 untrusted@0.9.0								X						
 url@2.5.2		X							X					
@@ -144,20 +154,29 @@ wasm-bindgen-macro-support@0.2.93		X							X
 wasm-bindgen-shared@0.2.93		X							X					
 wasm-streams@0.4.0		X							X					
 web-sys@0.3.70		X							X					
-webpki-roots@0.26.3										X				
+webpki-roots@0.26.5										X				
 windows-core@0.52.0		X							X					
 windows-registry@0.2.0		X							X					
 windows-result@0.2.0		X							X					
 windows-strings@0.1.0		X							X					
+windows-sys@0.48.0		X							X					
 windows-sys@0.52.0		X							X					
+windows-targets@0.48.5		X							X					
 windows-targets@0.52.6		X							X					
+windows_aarch64_gnullvm@0.48.5		X							X					
 windows_aarch64_gnullvm@0.52.6		X							X					
+windows_aarch64_msvc@0.48.5		X							X					
 windows_aarch64_msvc@0.52.6		X							X					
+windows_i686_gnu@0.48.5		X							X					
 windows_i686_gnu@0.52.6		X							X					
 windows_i686_gnullvm@0.52.6		X							X					
+windows_i686_msvc@0.48.5		X							X					
 windows_i686_msvc@0.52.6		X							X					
+windows_x86_64_gnu@0.48.5		X							X					
 windows_x86_64_gnu@0.52.6		X							X					
+windows_x86_64_gnullvm@0.48.5		X							X					
 windows_x86_64_gnullvm@0.52.6		X							X					
+windows_x86_64_msvc@0.48.5		X							X					
 windows_x86_64_msvc@0.52.6		X							X					
 zerocopy@0.7.35		X		X					X					
 zerocopy-derive@0.7.35		X		X					X					
diff --git a/core/src/layers/fastrace.rs b/core/src/layers/fastrace.rs
index 513d91b2b1..897239ef4d 100644
--- a/core/src/layers/fastrace.rs
+++ b/core/src/layers/fastrace.rs
@@ -55,7 +55,8 @@ use crate::*;
 /// # use opendal::Operator;
 ///
 /// # fn main() -> Result<()> {
-/// let reporter = fastrace_jaeger::JaegerReporter::new("127.0.0.1:6831".parse()?, "opendal").unwrap();
+/// let reporter =
+///     fastrace_jaeger::JaegerReporter::new("127.0.0.1:6831".parse()?, "opendal").unwrap();
 /// fastrace::set_reporter(reporter, fastrace::collector::Config::default());
 ///
 /// {
@@ -67,7 +68,8 @@ use crate::*;
 ///             let op = Operator::new(services::Memory::default())?
 ///                 .layer(FastraceLayer)
 ///                 .finish();
-///             op.write("test", "0".repeat(16 * 1024 * 1024).into_bytes()).await?;
+///             op.write("test", "0".repeat(16 * 1024 * 1024).into_bytes())
+///                 .await?;
 ///             op.stat("test").await?;
 ///             op.read("test").await?;
 ///             Ok::<(), opendal::Error>(())
@@ -94,7 +96,8 @@ use crate::*;
 /// # use anyhow::Result;
 ///
 /// # fn main() -> Result<()> {
-/// let reporter = fastrace_jaeger::JaegerReporter::new("127.0.0.1:6831".parse()?, "opendal").unwrap();
+/// let reporter =
+///     fastrace_jaeger::JaegerReporter::new("127.0.0.1:6831".parse()?, "opendal").unwrap();
 /// fastrace::set_reporter(reporter, fastrace::collector::Config::default());
 /// Ok(())
 /// # }
diff --git a/core/src/layers/logging.rs b/core/src/layers/logging.rs
index 100a3951ef..ae916de759 100644
--- a/core/src/layers/logging.rs
+++ b/core/src/layers/logging.rs
@@ -50,10 +50,10 @@ use crate::*;
 /// # use opendal::Scheme;
 ///
 /// # fn main() -> Result<()> {
-///  let _ = Operator::new(services::Memory::default())?
+/// let _ = Operator::new(services::Memory::default())?
 ///     .layer(LoggingLayer::default())
 ///     .finish();
-///  Ok(())
+/// Ok(())
 /// # }
 /// ```
 ///
@@ -104,10 +104,10 @@ use crate::*;
 /// }
 ///
 /// # fn main() -> Result<()> {
-///  let _ = Operator::new(services::Memory::default())?
+/// let _ = Operator::new(services::Memory::default())?
 ///     .layer(LoggingLayer::new(MyLoggingInterceptor))
 ///     .finish();
-///  Ok(())
+/// Ok(())
 /// # }
 /// ```
 #[derive(Debug)]
diff --git a/core/src/layers/mod.rs b/core/src/layers/mod.rs
index 1b2d8932b9..c43db2331a 100644
--- a/core/src/layers/mod.rs
+++ b/core/src/layers/mod.rs
@@ -62,12 +62,16 @@ pub use self::mime_guess::MimeGuessLayer;
 #[cfg(feature = "layers-prometheus")]
 mod prometheus;
 #[cfg(feature = "layers-prometheus")]
-pub use self::prometheus::{PrometheusLayer, PrometheusLayerBuilder};
+pub use self::prometheus::PrometheusLayer;
+#[cfg(feature = "layers-prometheus")]
+pub use self::prometheus::PrometheusLayerBuilder;
 
 #[cfg(feature = "layers-prometheus-client")]
 mod prometheus_client;
 #[cfg(feature = "layers-prometheus-client")]
-pub use self::prometheus_client::{PrometheusClientLayer, PrometheusClientLayerBuilder};
+pub use self::prometheus_client::PrometheusClientLayer;
+#[cfg(feature = "layers-prometheus-client")]
+pub use self::prometheus_client::PrometheusClientLayerBuilder;
 
 mod retry;
 pub use self::retry::RetryInterceptor;
diff --git a/core/src/layers/observe/metrics.rs b/core/src/layers/observe/metrics.rs
index 24e3801cdb..40d7ddf1be 100644
--- a/core/src/layers/observe/metrics.rs
+++ b/core/src/layers/observe/metrics.rs
@@ -15,9 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use std::fmt::{Debug, Formatter, Write};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+use std::fmt::Write;
 use std::sync::Arc;
-use std::time::{Duration, Instant};
+use std::time::Duration;
+use std::time::Instant;
 
 use crate::raw::*;
 use crate::*;
diff --git a/core/src/layers/observe/mod.rs b/core/src/layers/observe/mod.rs
index c7a9c2dd28..dcbe059a43 100644
--- a/core/src/layers/observe/mod.rs
+++ b/core/src/layers/observe/mod.rs
@@ -28,7 +28,6 @@
 //! | operation_duration_seconds   | Histogram | Histogram of time spent during opendal operations            | scheme, namespace, root, operation, path        |
 //! | operation_bytes.             | Histogram | Histogram of the bytes transferred during opendal operations | scheme, operation, root, operation, path        |
 //! | operation_errors_total       | Counter   | Error counter during opendal operations                      | scheme, operation, root, operation, path, error |
-//!
 
 mod metrics;
 
diff --git a/core/src/layers/prometheus.rs b/core/src/layers/prometheus.rs
index f374c24a0b..d6a152ec65 100644
--- a/core/src/layers/prometheus.rs
+++ b/core/src/layers/prometheus.rs
@@ -54,7 +54,11 @@ use crate::*;
 /// let registry = prometheus::default_registry();
 ///
 /// let op = Operator::new(services::Memory::default())?
-///     .layer(PrometheusLayer::builder().register(registry).expect("register metrics successfully"))
+///     .layer(
+///         PrometheusLayer::builder()
+///             .register(registry)
+///             .expect("register metrics successfully"),
+///     )
 ///     .finish();
 /// debug!("operator: {op:?}");
 ///
@@ -103,25 +107,25 @@ impl PrometheusLayer {
     /// #
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let registry = prometheus::default_registry();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let registry = prometheus::default_registry();
     ///
-    ///     let duration_seconds_buckets = prometheus::exponential_buckets(0.01, 2.0, 16).unwrap();
-    ///     let bytes_buckets = prometheus::exponential_buckets(1.0, 2.0, 16).unwrap();
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusLayer::builder()
-    ///                 .operation_duration_seconds_buckets(duration_seconds_buckets)
-    ///                 .operation_bytes_buckets(bytes_buckets)
-    ///                 .path_label(0)
-    ///                 .register(registry)
-    ///                 .expect("register metrics successfully")
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let duration_seconds_buckets = prometheus::exponential_buckets(0.01, 2.0, 16).unwrap();
+    /// let bytes_buckets = prometheus::exponential_buckets(1.0, 2.0, 16).unwrap();
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusLayer::builder()
+    ///             .operation_duration_seconds_buckets(duration_seconds_buckets)
+    ///             .operation_bytes_buckets(bytes_buckets)
+    ///             .path_label(0)
+    ///             .register(registry)
+    ///             .expect("register metrics successfully"),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn builder() -> PrometheusLayerBuilder {
@@ -177,22 +181,22 @@ impl PrometheusLayerBuilder {
     /// #
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let registry = prometheus::default_registry();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let registry = prometheus::default_registry();
     ///
-    ///     let buckets = prometheus::exponential_buckets(0.01, 2.0, 16).unwrap();
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusLayer::builder()
-    ///                 .operation_duration_seconds_buckets(buckets)
-    ///                 .register(registry)
-    ///                 .expect("register metrics successfully")
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let buckets = prometheus::exponential_buckets(0.01, 2.0, 16).unwrap();
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusLayer::builder()
+    ///             .operation_duration_seconds_buckets(buckets)
+    ///             .register(registry)
+    ///             .expect("register metrics successfully"),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn operation_duration_seconds_buckets(mut self, buckets: Vec<f64>) -> Self {
@@ -215,22 +219,22 @@ impl PrometheusLayerBuilder {
     /// #
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let registry = prometheus::default_registry();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let registry = prometheus::default_registry();
     ///
-    ///     let buckets = prometheus::exponential_buckets(1.0, 2.0, 16).unwrap();
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusLayer::builder()
-    ///                 .operation_bytes_buckets(buckets)
-    ///                 .register(registry)
-    ///                 .expect("register metrics successfully")
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let buckets = prometheus::exponential_buckets(1.0, 2.0, 16).unwrap();
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusLayer::builder()
+    ///             .operation_bytes_buckets(buckets)
+    ///             .register(registry)
+    ///             .expect("register metrics successfully"),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn operation_bytes_buckets(mut self, buckets: Vec<f64>) -> Self {
@@ -257,21 +261,21 @@ impl PrometheusLayerBuilder {
     /// #
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let registry = prometheus::default_registry();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let registry = prometheus::default_registry();
     ///
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusLayer::builder()
-    ///                 .path_label(1)
-    ///                 .register(registry)
-    ///                 .expect("register metrics successfully")
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusLayer::builder()
+    ///             .path_label(1)
+    ///             .register(registry)
+    ///             .expect("register metrics successfully"),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn path_label(mut self, level: usize) -> Self {
@@ -292,20 +296,20 @@ impl PrometheusLayerBuilder {
     /// #
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let registry = prometheus::default_registry();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let registry = prometheus::default_registry();
     ///
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusLayer::builder()
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusLayer::builder()
     ///             .register(registry)
-    ///             .expect("register metrics successfully")
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    ///             .expect("register metrics successfully"),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn register(self, registry: &Registry) -> Result<PrometheusLayer> {
@@ -372,19 +376,19 @@ impl PrometheusLayerBuilder {
     /// #
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
     ///
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusLayer::builder()
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusLayer::builder()
     ///             .register_default()
-    ///             .expect("register metrics successfully")
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    ///             .expect("register metrics successfully"),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn register_default(self) -> Result<PrometheusLayer> {
diff --git a/core/src/layers/prometheus_client.rs b/core/src/layers/prometheus_client.rs
index e888248c29..4105003976 100644
--- a/core/src/layers/prometheus_client.rs
+++ b/core/src/layers/prometheus_client.rs
@@ -103,24 +103,26 @@ impl PrometheusClientLayer {
     ///
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let mut registry = prometheus_client::registry::Registry::default();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let mut registry = prometheus_client::registry::Registry::default();
     ///
-    ///     let duration_seconds_buckets = prometheus_client::metrics::histogram::exponential_buckets(0.01, 2.0, 16).collect();
-    ///     let bytes_buckets = prometheus_client::metrics::histogram::exponential_buckets(1.0, 2.0, 16).collect();
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusClientLayer::builder()
-    ///                 .operation_duration_seconds_buckets(duration_seconds_buckets)
-    ///                 .operation_bytes_buckets(bytes_buckets)
-    ///                 .path_label(0)
-    ///                 .register(&mut registry)
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let duration_seconds_buckets =
+    ///     prometheus_client::metrics::histogram::exponential_buckets(0.01, 2.0, 16).collect();
+    /// let bytes_buckets =
+    ///     prometheus_client::metrics::histogram::exponential_buckets(1.0, 2.0, 16).collect();
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusClientLayer::builder()
+    ///             .operation_duration_seconds_buckets(duration_seconds_buckets)
+    ///             .operation_bytes_buckets(bytes_buckets)
+    ///             .path_label(0)
+    ///             .register(&mut registry),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn builder() -> PrometheusClientLayerBuilder {
@@ -175,21 +177,22 @@ impl PrometheusClientLayerBuilder {
     ///
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let mut registry = prometheus_client::registry::Registry::default();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let mut registry = prometheus_client::registry::Registry::default();
     ///
-    ///     let buckets = prometheus_client::metrics::histogram::exponential_buckets(0.01, 2.0, 16).collect();
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusClientLayer::builder()
-    ///                 .operation_duration_seconds_buckets(buckets)
-    ///                 .register(&mut registry)
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let buckets =
+    ///     prometheus_client::metrics::histogram::exponential_buckets(0.01, 2.0, 16).collect();
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusClientLayer::builder()
+    ///             .operation_duration_seconds_buckets(buckets)
+    ///             .register(&mut registry),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn operation_duration_seconds_buckets(mut self, buckets: Vec<f64>) -> Self {
@@ -212,21 +215,22 @@ impl PrometheusClientLayerBuilder {
     ///
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let mut registry = prometheus_client::registry::Registry::default();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let mut registry = prometheus_client::registry::Registry::default();
     ///
-    ///     let buckets = prometheus_client::metrics::histogram::exponential_buckets(1.0, 2.0, 16).collect();
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusClientLayer::builder()
-    ///                 .operation_bytes_buckets(buckets)
-    ///                 .register(&mut registry)
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let buckets =
+    ///     prometheus_client::metrics::histogram::exponential_buckets(1.0, 2.0, 16).collect();
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusClientLayer::builder()
+    ///             .operation_bytes_buckets(buckets)
+    ///             .register(&mut registry),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn operation_bytes_buckets(mut self, buckets: Vec<f64>) -> Self {
@@ -253,20 +257,20 @@ impl PrometheusClientLayerBuilder {
     ///
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let mut registry = prometheus_client::registry::Registry::default();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let mut registry = prometheus_client::registry::Registry::default();
     ///
-    ///     let op = Operator::new(builder)?
-    ///         .layer(
-    ///             PrometheusClientLayer::builder()
-    ///                 .path_label(1)
-    ///                 .register(&mut registry)
-    ///         )
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let op = Operator::new(builder)?
+    ///     .layer(
+    ///         PrometheusClientLayer::builder()
+    ///             .path_label(1)
+    ///             .register(&mut registry),
+    ///     )
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn path_label(mut self, level: usize) -> Self {
@@ -287,16 +291,16 @@ impl PrometheusClientLayerBuilder {
     ///
     /// # #[tokio::main]
     /// # async fn main() -> Result<()> {
-    ///     // Pick a builder and configure it.
-    ///     let builder = services::Memory::default();
-    ///     let mut registry = prometheus_client::registry::Registry::default();
+    /// // Pick a builder and configure it.
+    /// let builder = services::Memory::default();
+    /// let mut registry = prometheus_client::registry::Registry::default();
     ///
-    ///     let op = Operator::new(builder)?
-    ///         .layer(PrometheusClientLayer::builder().register(&mut registry))
-    ///         .finish();
-    ///     debug!("operator: {op:?}");
+    /// let op = Operator::new(builder)?
+    ///     .layer(PrometheusClientLayer::builder().register(&mut registry))
+    ///     .finish();
+    /// debug!("operator: {op:?}");
     ///
-    ///     Ok(())
+    /// Ok(())
     /// # }
     /// ```
     pub fn register(self, registry: &mut Registry) -> PrometheusClientLayer {
diff --git a/core/src/layers/tracing.rs b/core/src/layers/tracing.rs
index aef0dfb59c..2c9ec04403 100644
--- a/core/src/layers/tracing.rs
+++ b/core/src/layers/tracing.rs
@@ -63,10 +63,9 @@ use crate::*;
 /// let tracer_provider = opentelemetry_otlp::new_pipeline()
 ///     .tracing()
 ///     .with_exporter(opentelemetry_otlp::new_exporter().tonic())
-///     .with_trace_config(
-///         trace::Config::default()
-///             .with_resource(Resource::new(vec![KeyValue::new("service.name", "opendal_example")]))
-///     )
+///     .with_trace_config(trace::Config::default().with_resource(Resource::new(vec![
+///         KeyValue::new("service.name", "opendal_example"),
+///     ])))
 ///     .install_simple()?;
 /// let tracer = tracer_provider.tracer("opendal_tracer");
 /// let opentelemetry = tracing_opentelemetry::layer().with_tracer(tracer);
@@ -87,10 +86,11 @@ use crate::*;
 ///             .layer(TracingLayer)
 ///             .finish();
 ///
-///         op.write("test", "0".repeat(16 * 1024 * 1024).into_bytes()).await?;
+///         op.write("test", "0".repeat(16 * 1024 * 1024).into_bytes())
+///             .await?;
 ///         op.stat("test").await?;
 ///         op.read("test").await?;
-///        Ok::<(), opendal::Error>(())
+///         Ok::<(), opendal::Error>(())
 ///     })?;
 /// }
 ///
@@ -133,8 +133,7 @@ use crate::*;
 /// # impl FooSubscriber { fn new() -> Self { FooSubscriber } }
 ///
 /// let my_subscriber = FooSubscriber::new();
-/// tracing::subscriber::set_global_default(my_subscriber)
-///     .expect("setting tracing default failed");
+/// tracing::subscriber::set_global_default(my_subscriber).expect("setting tracing default failed");
 /// ```
 ///
 /// For real-world usage, please take a look at [`tracing-opentelemetry`](https://crates.io/crates/tracing-opentelemetry).
diff --git a/core/src/raw/adapters/typed_kv/backend.rs b/core/src/raw/adapters/typed_kv/backend.rs
index 1a04efd308..59d10a47e3 100644
--- a/core/src/raw/adapters/typed_kv/backend.rs
+++ b/core/src/raw/adapters/typed_kv/backend.rs
@@ -15,14 +15,15 @@
 // specific language governing permissions and limitations
 // under the License.
 
+use std::sync::Arc;
+use std::vec::IntoIter;
+
 use super::Adapter;
 use super::Value;
 use crate::raw::oio::HierarchyLister;
 use crate::raw::oio::QueueBuf;
 use crate::raw::*;
 use crate::*;
-use std::sync::Arc;
-use std::vec::IntoIter;
 
 /// The typed kv backend which implements Accessor for typed kv adapter.
 #[derive(Debug, Clone)]
diff --git a/core/src/services/aliyun_drive/config.rs b/core/src/services/aliyun_drive/config.rs
index f03a650ced..ed6ae534b2 100644
--- a/core/src/services/aliyun_drive/config.rs
+++ b/core/src/services/aliyun_drive/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Aliyun Drive services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/alluxio/config.rs b/core/src/services/alluxio/config.rs
index 78f143cfc2..0c2c2e176e 100644
--- a/core/src/services/alluxio/config.rs
+++ b/core/src/services/alluxio/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for alluxio services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/atomicserver/config.rs b/core/src/services/atomicserver/config.rs
index 9b44ce8196..5d015b65b6 100644
--- a/core/src/services/atomicserver/config.rs
+++ b/core/src/services/atomicserver/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Atomicserver services support
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/azblob/config.rs b/core/src/services/azblob/config.rs
index 546ff1e832..571a195a2d 100644
--- a/core/src/services/azblob/config.rs
+++ b/core/src/services/azblob/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Azure Storage Blob services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/azblob/lister.rs b/core/src/services/azblob/lister.rs
index 4804b64b33..9904500765 100644
--- a/core/src/services/azblob/lister.rs
+++ b/core/src/services/azblob/lister.rs
@@ -17,13 +17,14 @@
 
 use std::sync::Arc;
 
+use bytes::Buf;
+use quick_xml::de;
+
 use super::core::AzblobCore;
 use super::core::ListBlobsOutput;
 use super::error::parse_error;
 use crate::raw::*;
 use crate::*;
-use bytes::Buf;
-use quick_xml::de;
 
 pub struct AzblobLister {
     core: Arc<AzblobCore>,
diff --git a/core/src/services/azdls/config.rs b/core/src/services/azdls/config.rs
index 0d299a59b4..868a309863 100644
--- a/core/src/services/azdls/config.rs
+++ b/core/src/services/azdls/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Azure Data Lake Storage Gen2 Support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/azfile/config.rs b/core/src/services/azfile/config.rs
index 6f3e3c957e..8d9d1527a8 100644
--- a/core/src/services/azfile/config.rs
+++ b/core/src/services/azfile/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Azure File services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/b2/config.rs b/core/src/services/b2/config.rs
index 3bfbca072b..d5da9b0a8a 100644
--- a/core/src/services/b2/config.rs
+++ b/core/src/services/b2/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for backblaze b2 services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/cacache/config.rs b/core/src/services/cacache/config.rs
index 768c87539b..1d01a38638 100644
--- a/core/src/services/cacache/config.rs
+++ b/core/src/services/cacache/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// cacache service support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 pub struct CacacheConfig {
diff --git a/core/src/services/chainsafe/config.rs b/core/src/services/chainsafe/config.rs
index 73447ffe6b..dc73c94f65 100644
--- a/core/src/services/chainsafe/config.rs
+++ b/core/src/services/chainsafe/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Chainsafe services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/cloudflare_kv/config.rs b/core/src/services/cloudflare_kv/config.rs
index 777b43c2a8..c3781f641f 100644
--- a/core/src/services/cloudflare_kv/config.rs
+++ b/core/src/services/cloudflare_kv/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Cloudflare KV Service Support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/compfs/config.rs b/core/src/services/compfs/config.rs
index 6dd1719321..49cc680981 100644
--- a/core/src/services/compfs/config.rs
+++ b/core/src/services/compfs/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// compio-based file system support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 pub struct CompfsConfig {
diff --git a/core/src/services/cos/config.rs b/core/src/services/cos/config.rs
index 166b8159a1..8c73f00ca8 100644
--- a/core/src/services/cos/config.rs
+++ b/core/src/services/cos/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Tencent-Cloud COS services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/d1/config.rs b/core/src/services/d1/config.rs
index 0269f4124f..2e8b111ef9 100644
--- a/core/src/services/d1/config.rs
+++ b/core/src/services/d1/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for [Cloudflare D1](https://developers.cloudflare.com/d1) backend support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/dashmap/config.rs b/core/src/services/dashmap/config.rs
index f80fa15c9d..bb747508a5 100644
--- a/core/src/services/dashmap/config.rs
+++ b/core/src/services/dashmap/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// [dashmap](https://github.com/xacrimon/dashmap) backend support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 pub struct DashmapConfig {
diff --git a/core/src/services/dbfs/config.rs b/core/src/services/dbfs/config.rs
index 285ddf71ba..65498511cf 100644
--- a/core/src/services/dbfs/config.rs
+++ b/core/src/services/dbfs/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// [Dbfs](https://docs.databricks.com/api/azure/workspace/dbfs)'s REST API support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/dropbox/config.rs b/core/src/services/dropbox/config.rs
index e44222da36..4882e3a0c9 100644
--- a/core/src/services/dropbox/config.rs
+++ b/core/src/services/dropbox/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for [Dropbox](https://www.dropbox.com/) backend support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/etcd/config.rs b/core/src/services/etcd/config.rs
index b5ee4e4f42..f592f99f52 100644
--- a/core/src/services/etcd/config.rs
+++ b/core/src/services/etcd/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Etcd services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/foundationdb/config.rs b/core/src/services/foundationdb/config.rs
index b210bf8da4..924db518fd 100644
--- a/core/src/services/foundationdb/config.rs
+++ b/core/src/services/foundationdb/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// [foundationdb](https://www.foundationdb.org/) service support.
 ///Config for FoundationDB.
diff --git a/core/src/services/fs/config.rs b/core/src/services/fs/config.rs
index e79b536414..eb501ee8c8 100644
--- a/core/src/services/fs/config.rs
+++ b/core/src/services/fs/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// config for file system
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/fs/lister.rs b/core/src/services/fs/lister.rs
index 305a1214e2..adafd2c9dd 100644
--- a/core/src/services/fs/lister.rs
+++ b/core/src/services/fs/lister.rs
@@ -15,12 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
+use std::path::Path;
+use std::path::PathBuf;
+
 use crate::raw::*;
+use crate::EntryMode;
 use crate::Metadata;
+use crate::Metakey;
 use crate::Result;
-use crate::{EntryMode, Metakey};
-use std::path::Path;
-use std::path::PathBuf;
 
 pub struct FsLister<P> {
     root: PathBuf,
diff --git a/core/src/services/ftp/config.rs b/core/src/services/ftp/config.rs
index 1f1a1c32b4..f2942ad3b3 100644
--- a/core/src/services/ftp/config.rs
+++ b/core/src/services/ftp/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Ftp services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/gcs/config.rs b/core/src/services/gcs/config.rs
index 31e60d0ba8..43ff151759 100644
--- a/core/src/services/gcs/config.rs
+++ b/core/src/services/gcs/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// [Google Cloud Storage](https://cloud.google.com/storage) services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/gdrive/config.rs b/core/src/services/gdrive/config.rs
index 85df5f932a..6a217e0e66 100644
--- a/core/src/services/gdrive/config.rs
+++ b/core/src/services/gdrive/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// [GoogleDrive](https://drive.google.com/) configuration.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/ghac/config.rs b/core/src/services/ghac/config.rs
index 7958c06302..b1f655e7f6 100644
--- a/core/src/services/ghac/config.rs
+++ b/core/src/services/ghac/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for GitHub Action Cache Services support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/github/config.rs b/core/src/services/github/config.rs
index c3927f89ff..3c89686ab4 100644
--- a/core/src/services/github/config.rs
+++ b/core/src/services/github/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for GitHub services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/gridfs/backend.rs b/core/src/services/gridfs/backend.rs
index 5b1966f029..db2bf34456 100644
--- a/core/src/services/gridfs/backend.rs
+++ b/core/src/services/gridfs/backend.rs
@@ -26,12 +26,11 @@ use mongodb::options::ClientOptions;
 use mongodb::options::GridFsBucketOptions;
 use tokio::sync::OnceCell;
 
+use super::config::GridfsConfig;
 use crate::raw::adapters::kv;
 use crate::raw::*;
 use crate::*;
 
-use super::config::GridfsConfig;
-
 impl Configurator for GridfsConfig {
     type Builder = GridfsBuilder;
     fn into_builder(self) -> Self::Builder {
diff --git a/core/src/services/gridfs/config.rs b/core/src/services/gridfs/config.rs
index e7d148d269..cd5f842502 100644
--- a/core/src/services/gridfs/config.rs
+++ b/core/src/services/gridfs/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Grid file system support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/hdfs/config.rs b/core/src/services/hdfs/config.rs
index f4fbb129e8..ba1e6f5931 100644
--- a/core/src/services/hdfs/config.rs
+++ b/core/src/services/hdfs/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// [Hadoop Distributed File System (HDFS™)](https://hadoop.apache.org/) support.
 ///
diff --git a/core/src/services/hdfs_native/config.rs b/core/src/services/hdfs_native/config.rs
index c552c2bf2a..1144f2a748 100644
--- a/core/src/services/hdfs_native/config.rs
+++ b/core/src/services/hdfs_native/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for HdfsNative services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/http/config.rs b/core/src/services/http/config.rs
index 2879ca5efa..3f8681edd1 100644
--- a/core/src/services/http/config.rs
+++ b/core/src/services/http/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Http service support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/huggingface/config.rs b/core/src/services/huggingface/config.rs
index be03c66311..3d79996d87 100644
--- a/core/src/services/huggingface/config.rs
+++ b/core/src/services/huggingface/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Configuration for Huggingface service support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/icloud/config.rs b/core/src/services/icloud/config.rs
index 7fc511457c..c4f16c8c44 100644
--- a/core/src/services/icloud/config.rs
+++ b/core/src/services/icloud/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for icloud services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/ipfs/config.rs b/core/src/services/ipfs/config.rs
index 2685ccdd95..535815283f 100644
--- a/core/src/services/ipfs/config.rs
+++ b/core/src/services/ipfs/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for IPFS file system support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/ipmfs/config.rs b/core/src/services/ipmfs/config.rs
index f059cdfa10..b24919c077 100644
--- a/core/src/services/ipmfs/config.rs
+++ b/core/src/services/ipmfs/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for IPFS MFS support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/koofr/config.rs b/core/src/services/koofr/config.rs
index 7ac01c4238..3587b4372b 100644
--- a/core/src/services/koofr/config.rs
+++ b/core/src/services/koofr/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Koofr services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/lakefs/backend.rs b/core/src/services/lakefs/backend.rs
index d3fb208cbb..6dab46e45f 100644
--- a/core/src/services/lakefs/backend.rs
+++ b/core/src/services/lakefs/backend.rs
@@ -20,7 +20,8 @@ use std::fmt::Formatter;
 use std::sync::Arc;
 
 use bytes::Buf;
-use chrono::{TimeZone, Utc};
+use chrono::TimeZone;
+use chrono::Utc;
 use http::Response;
 use http::StatusCode;
 use log::debug;
diff --git a/core/src/services/lakefs/config.rs b/core/src/services/lakefs/config.rs
index aa2826e93d..eed964ea59 100644
--- a/core/src/services/lakefs/config.rs
+++ b/core/src/services/lakefs/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
 
-use serde::{Deserialize, Serialize};
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Configuration for Lakefs service support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/lakefs/lister.rs b/core/src/services/lakefs/lister.rs
index fcef5bc28a..68dac04ebf 100644
--- a/core/src/services/lakefs/lister.rs
+++ b/core/src/services/lakefs/lister.rs
@@ -18,14 +18,15 @@
 use std::sync::Arc;
 
 use bytes::Buf;
-use chrono::{TimeZone, Utc};
+use chrono::TimeZone;
+use chrono::Utc;
 
+use super::core::LakefsCore;
+use super::core::LakefsListResponse;
+use super::error::parse_error;
 use crate::raw::*;
 use crate::*;
 
-use super::core::{LakefsCore, LakefsListResponse};
-use super::error::parse_error;
-
 pub struct LakefsLister {
     core: Arc<LakefsCore>,
     path: String,
diff --git a/core/src/services/lakefs/writer.rs b/core/src/services/lakefs/writer.rs
index 299cf8bd42..2e416502eb 100644
--- a/core/src/services/lakefs/writer.rs
+++ b/core/src/services/lakefs/writer.rs
@@ -19,12 +19,11 @@ use std::sync::Arc;
 
 use http::StatusCode;
 
+use super::error::parse_error;
 use crate::raw::*;
 use crate::services::lakefs::core::LakefsCore;
 use crate::*;
 
-use super::error::parse_error;
-
 pub struct LakefsWriter {
     core: Arc<LakefsCore>,
     op: OpWrite,
diff --git a/core/src/services/libsql/config.rs b/core/src/services/libsql/config.rs
index fad630d300..a8c953e697 100644
--- a/core/src/services/libsql/config.rs
+++ b/core/src/services/libsql/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Libsql services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/memcached/config.rs b/core/src/services/memcached/config.rs
index c05a667cb5..f0b5815ff7 100644
--- a/core/src/services/memcached/config.rs
+++ b/core/src/services/memcached/config.rs
@@ -15,10 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 use std::time::Duration;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for MemCached services support
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/memory/backend.rs b/core/src/services/memory/backend.rs
index 558c5650dc..e9b4238896 100644
--- a/core/src/services/memory/backend.rs
+++ b/core/src/services/memory/backend.rs
@@ -144,7 +144,8 @@ impl typed_kv::Adapter for Adapter {
 #[cfg(test)]
 mod tests {
     use super::*;
-    use crate::raw::adapters::typed_kv::{Adapter, Value};
+    use crate::raw::adapters::typed_kv::Adapter;
+    use crate::raw::adapters::typed_kv::Value;
     use crate::services::memory::backend;
 
     #[test]
diff --git a/core/src/services/memory/config.rs b/core/src/services/memory/config.rs
index e9d5a97abb..31321de416 100644
--- a/core/src/services/memory/config.rs
+++ b/core/src/services/memory/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for memory.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/mini_moka/config.rs b/core/src/services/mini_moka/config.rs
index ff76b1ae00..7b1f6dc456 100644
--- a/core/src/services/mini_moka/config.rs
+++ b/core/src/services/mini_moka/config.rs
@@ -15,10 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 use std::time::Duration;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for mini-moka support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/moka/config.rs b/core/src/services/moka/config.rs
index 8e0976456b..55458674b1 100644
--- a/core/src/services/moka/config.rs
+++ b/core/src/services/moka/config.rs
@@ -15,10 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
 use std::time::Duration;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for Moka services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/mongodb/config.rs b/core/src/services/mongodb/config.rs
index a20662ed45..4001533f23 100644
--- a/core/src/services/mongodb/config.rs
+++ b/core/src/services/mongodb/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Mongodb service support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/monoiofs/config.rs b/core/src/services/monoiofs/config.rs
index ea55ae58fc..09854e7f5b 100644
--- a/core/src/services/monoiofs/config.rs
+++ b/core/src/services/monoiofs/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for monoiofs services support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/monoiofs/reader.rs b/core/src/services/monoiofs/reader.rs
index d86df4d575..cbadb58743 100644
--- a/core/src/services/monoiofs/reader.rs
+++ b/core/src/services/monoiofs/reader.rs
@@ -19,11 +19,14 @@ use std::path::PathBuf;
 use std::sync::Arc;
 
 use bytes::BytesMut;
-use futures::channel::{mpsc, oneshot};
-use futures::{SinkExt, StreamExt};
+use futures::channel::mpsc;
+use futures::channel::oneshot;
+use futures::SinkExt;
+use futures::StreamExt;
 use monoio::fs::OpenOptions;
 
-use super::core::{MonoiofsCore, BUFFER_SIZE};
+use super::core::MonoiofsCore;
+use super::core::BUFFER_SIZE;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/monoiofs/writer.rs b/core/src/services/monoiofs/writer.rs
index eb85ebc395..24ae3ab372 100644
--- a/core/src/services/monoiofs/writer.rs
+++ b/core/src/services/monoiofs/writer.rs
@@ -18,9 +18,12 @@
 use std::path::PathBuf;
 use std::sync::Arc;
 
-use bytes::{Buf, Bytes};
-use futures::channel::{mpsc, oneshot};
-use futures::{SinkExt, StreamExt};
+use bytes::Buf;
+use bytes::Bytes;
+use futures::channel::mpsc;
+use futures::channel::oneshot;
+use futures::SinkExt;
+use futures::StreamExt;
 use monoio::fs::OpenOptions;
 
 use super::core::MonoiofsCore;
diff --git a/core/src/services/mysql/backend.rs b/core/src/services/mysql/backend.rs
index b635169a54..0b1481ef01 100644
--- a/core/src/services/mysql/backend.rs
+++ b/core/src/services/mysql/backend.rs
@@ -15,15 +15,17 @@
 // specific language governing permissions and limitations
 // under the License.
 
+use std::fmt::Debug;
+use std::str::FromStr;
+
+use sqlx::mysql::MySqlConnectOptions;
+use sqlx::MySqlPool;
+use tokio::sync::OnceCell;
+
 use crate::raw::adapters::kv;
 use crate::raw::*;
 use crate::services::MysqlConfig;
 use crate::*;
-use sqlx::mysql::MySqlConnectOptions;
-use sqlx::MySqlPool;
-use std::fmt::Debug;
-use std::str::FromStr;
-use tokio::sync::OnceCell;
 
 impl Configurator for MysqlConfig {
     type Builder = MysqlBuilder;
diff --git a/core/src/services/mysql/config.rs b/core/src/services/mysql/config.rs
index 1c63229443..f9cdcc74c2 100644
--- a/core/src/services/mysql/config.rs
+++ b/core/src/services/mysql/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Mysql services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/obs/config.rs b/core/src/services/obs/config.rs
index 5c7a1667cf..261cffe381 100644
--- a/core/src/services/obs/config.rs
+++ b/core/src/services/obs/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Huawei-Cloud Object Storage Service (OBS) support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/onedrive/config.rs b/core/src/services/onedrive/config.rs
index 40baf69afd..79bfa6ee57 100644
--- a/core/src/services/onedrive/config.rs
+++ b/core/src/services/onedrive/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for [OneDrive](https://onedrive.com) backend support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/oss/config.rs b/core/src/services/oss/config.rs
index 90cd64c9d6..a5ebb2d8b3 100644
--- a/core/src/services/oss/config.rs
+++ b/core/src/services/oss/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Aliyun Object Storage Service (OSS) support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/pcloud/config.rs b/core/src/services/pcloud/config.rs
index d09078c24c..3d5d392784 100644
--- a/core/src/services/pcloud/config.rs
+++ b/core/src/services/pcloud/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for Pcloud services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/persy/config.rs b/core/src/services/persy/config.rs
index d5ef977f32..23c5c7ea28 100644
--- a/core/src/services/persy/config.rs
+++ b/core/src/services/persy/config.rs
@@ -15,7 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for persy service support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/postgresql/backend.rs b/core/src/services/postgresql/backend.rs
index 7759963bf5..8b4ea56eb2 100644
--- a/core/src/services/postgresql/backend.rs
+++ b/core/src/services/postgresql/backend.rs
@@ -15,17 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use crate::raw::adapters::kv;
-use crate::raw::*;
-use crate::services::PostgresqlConfig;
-use crate::*;
-use sqlx::postgres::PgConnectOptions;
-use sqlx::PgPool;
 use std::fmt::Debug;
 use std::fmt::Formatter;
 use std::str::FromStr;
+
+use sqlx::postgres::PgConnectOptions;
+use sqlx::PgPool;
 use tokio::sync::OnceCell;
 
+use crate::raw::adapters::kv;
+use crate::raw::*;
+use crate::services::PostgresqlConfig;
+use crate::*;
+
 impl Configurator for PostgresqlConfig {
     type Builder = PostgresqlBuilder;
     fn into_builder(self) -> Self::Builder {
diff --git a/core/src/services/postgresql/config.rs b/core/src/services/postgresql/config.rs
index 2aee7d7d56..6b2d4775a3 100644
--- a/core/src/services/postgresql/config.rs
+++ b/core/src/services/postgresql/config.rs
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
-use std::fmt::{Debug, Formatter};
+use std::fmt::Debug;
+use std::fmt::Formatter;
+
+use serde::Deserialize;
+use serde::Serialize;
 
 /// Config for PostgreSQL services support.
 #[derive(Default, Serialize, Deserialize, Clone, PartialEq, Eq)]
diff --git a/core/src/services/redb/config.rs b/core/src/services/redb/config.rs
index 55b2532f4c..3a5283873b 100644
--- a/core/src/services/redb/config.rs
+++ b/core/src/services/redb/config.rs
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
 
+use serde::Deserialize;
+use serde::Serialize;
+
 /// Config for redb service support.
 #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(default)]
diff --git a/core/src/services/redis/backend.rs b/core/src/services/redis/backend.rs
index b0b5c11c23..8d08e1216a 100644
--- a/core/src/services/redis/backend.rs
+++ b/core/src/services/redis/backend.rs
@@ -25,12 +25,13 @@ use redis::aio::ConnectionManager;
 use redis::cluster::ClusterClient;
 use redis::cluster::ClusterClientBuilder;
 use redis::cluster_async::ClusterConnection;
+use redis::AsyncCommands;
 use redis::Client;
 use redis::ConnectionAddr;
... 1835 lines suppressed ...