github apache/opendal v0.56.0

6 hours ago

Breaking Changes

  • core: Scheme-based APIs are now fully string-based. Migrate Operator::from_map and Operator::via_map call sites to from_iter and via_iter, and stop matching on Scheme values directly.
  • core: service-builder http_client hooks and TimeoutLayer::with_speed have been removed after deprecation. Move HTTP customization to layered/client APIs and replace with_speed with with_io_timeout.
  • core: low-level test helpers moved out of opendal::raw::tests. Use opendal::tests or depend on opendal-testkit directly for out-of-tree services and integrations.
  • integrations/parquet: parquet_opendal now targets Arrow 58 and ships as 0.8.0. Downstream integrations pinned to older Arrow releases must upgrade together.

What's Changed

Added

  • feat(services/oss): allow users to specify endpoint addressing style by @howardlau1999 in #6504
  • feat(bindings/ruby): publish ruby binding by @erickguan in #6539
  • feat(services/s3): add support for HTTP 429 TooManyRequests for S3-compatible services by @justinjoseph89 in #6589
  • feat: Add Operator Registry by @Xuanwo in #6608
  • feat: Add from_uri support for more object storage services by @Xuanwo in #6665
  • feat(services/webdav): Implement write returns metadata by @yunchipang in #6660
  • feat: Add from_uri support for http/webdav/ftp/sftp by @Xuanwo in #6666
  • feat(services/swift): Implement write returns metadata by @yunchipang in #6669
  • feat(buffer): add chunk iterator for Buffer by @TennyZhuang in #6672
  • feat(services/dropbox): Implement write returns metadata by @yunchipang in #6673
  • feat: Add from_uri support for all services by @Xuanwo in #6668
  • chore(bindings/python): Add Justfile and format codebase by @chitralverma in #6677
  • feat: Introduce TailCutLayer by @Xuanwo in #6680
  • feat(services/gdrive): Implement write returns metadata by @yunchipang in #6683
  • feat(bindings/python): Add stubs for Exception and Capability by @chitralverma in #6690
  • feat(bindings/python): Add stubs for some more types by @chitralverma in #6703
  • feat(bindings/python)!: Add stubs for remaining types by @chitralverma in #6720
  • feat(bindings/python)!: Stubs fix for operator and version by @chitralverma in #6728
  • RFC-6707: Capability Override Layer by @Xuanwo in #6707
  • feat(bindings/python)!: Generate stubs for Operator overloads and Scheme by @chitralverma in #6729
  • feat(bindings/nodejs): add concurrent limit layer by @kingsword09 in #6739
  • feat(bindings/python): Enable ftp/hdfs_native/sftp for python by @chitralverma in #6745
  • feat: implement content-md5 for s3 by @waynexia in #6508
  • feat(services/compfs): implement IoVectoredBuf for Buffer by @meteorgan in #6762
  • feat(services/lakefs): Implement write returns metadata by @kingsword09 in #6770
  • Add connection_pool_max_size option to memcached and redis builders by @trxcllnt in #6759
  • fix:(bindings/python) Gate service-sftp on windows targets by @chitralverma in #6777
  • feat(binding/nodejs): add TimeoutLayer, LoggingLayer and ThrottleLayer in nodejs binding by @Kilerd in #6772
  • feat(hugginface): allow specifying huggingface endpoint by @kszucs in #6801
  • feat(services/github): Implement write returns metadata by @rich7420 in #6806
  • feat(services/koofr): Implement write returns metadata by @rich7420 in #6809
  • feat: Implement concurrent write for azdls by @Xuanwo in #6819
  • feat: Add simulation for delete with recursive by @Xuanwo in #6824
  • feat: Add delete with recursive support for fs by @Xuanwo in #6827
  • feat(services/huggingface): Add repo_type=space support by @AryanBagade in #6833
  • feat(services/huggingface): Enrich metadata with ETag and security scan flags by @AryanBagade in #6834
  • feat(services/azdls): Add user defined metadata support by @zhan7236 in #6842
  • feat(services/azfile): Add user defined metadata support by @zhan7236 in #6841
  • feat(services): split cacache, dbfs, dropbox, etcd, foundationdb into separate crates by @tao12345666333 in #7031
  • feat: support if_not_exists in the Memory service by @carlsverre in #7036
  • feat(services/b2): Add user defined metadata support by @zhan7236 in #6844
  • feat(services/fs): Add user defined metadata support by @zhan7236 in #7061
  • feat(services/gdrive): implement batch recursive listing for ~200x performance improvement by @mro68 in #7059
  • feat(services/fs): add file as an alias scheme for fs by @userzhy in #7075
  • feat(layers/hotpath): add HotpathLayer integration by @PsiACE in #7083
  • feat(bindings/java): Speed up the performance of OperatorInputStream by @Xuanwo in #7088
  • feat: Binding Java's createInputStream and createOutputStream to support options by @Sahil-Shadwal in #7097
  • feat(services/webdav): Add user defined metadata support by @userzhy in #7074
  • feat: introduce foyer layer by @MrCroxx in #6366
  • feat(layers/route): impl route layer as rfc 7130 by @PsiACE in #7137
  • feat(services/azdls): add recursive deletion for azdls by @meteorgan in #7142
  • feat(services/hdfs): add delete with recursive support for hdfs by @meteorgan in #7136
  • feat(bindings/go): support presign by @yuchanns in #7147
  • feat(layers/concurrent-limit): accept custom semaphore without API break by @PsiACE in #7082
  • feat(services/memcached): Support connection via unix domain socket by @zenyanle in #7112
  • feat(webdav): disable_create_dir for servers without PROPFIND by @weihanglo in #7177
  • feat(services/swift): add conditional request headers for stat and read by @benroeder in #7208
  • feat(services/swift): add bulk delete support by @benroeder in #7210
  • feat(services/swift): add SLO multipart upload for large objects by @benroeder in #7212
  • feat(services/swift): add TempURL presigned URL support by @benroeder in #7214
  • feat(services): reduce list fallback stat for local kv backends by @Xuanwo in #7218
  • feat(services/s3): Add a way to specify a default object ACL by @antoine-de in #7186
  • feat(services/tos): add volcengine TOS support by @ddupg in #7233
  • feat(services/http): Add https as alias for http scheme by @clbarnes in #7241
  • feat(bindings/dotnet): Bindings dotnet implement by @Fatorin in #7238
  • feat(integrations/parquet): upgrade arrow-rs to 58.0.0 by @jo-migo in #7250
  • feat(services/s3): Add ACL on multipart upload by @antoine-de in #7255
  • feat(bindings/python): support options for presign operations by @atakiar in #7265
  • feat(s3): validate checksum before making HTTP requests by @dentiny in #7296
  • feat(services/sftp): add write_with_if_not_exists support by @unbrice in #7251
  • feat(services/hdfs-native): service hdfs-native support high availability (HA) cluster by @qingfeng-occ in #7248
  • feat(bindings/dotnet): standardize naming to OpenDAL and enforce RC releases by @Fatorin in #7355
  • feat(services/vercel): Add additional options to Vercel cache backend by @mmastrac in #7334
  • feat(hf): support writing and reading from both http and xet by @kszucs in #7185
  • feat(services/azfile): return write metadata by @spereyra-dev in #7381
  • feat: get_ranges 2x performance degradation by @comphead in #7380
  • feat: Add foyer service by @flaneur2020 in #7160
  • feat(s3): by default quiet batch delete s3 objects by @dentiny in #7415

Changed

  • refactor: Migrate cloudflare_kv from adapter::kv to Access instead by @kingsword09 in #6340
  • refactor: Centralize date/time handling with Timestamp wrapper by @dami0806 in #6650
  • refactor: Move Config related back to config.rs instead by @Xuanwo in #6667
  • refactor: Remove deprecated project virtiofs by @Xuanwo in #6682
  • refactor(core): remove conditional compilation in PageList trait by @crwen in #6715
  • refactor: migrate tikv service from adapter::kv to impl Access directly by @koushiro in #6713
  • refactor: migrate memcached service from adapter::kv to impl Access directly by @koushiro in #6714
  • refactor: migrate mysql service from adapter::kv to impl Access directly by @koushiro in #6716
  • refactor: migrate postgresql service from adapter::kv to impl Access directly by @koushiro in #6718
  • refactor: migrate persy service from adapter::kv to impl Access directly by @koushiro in #6721
  • refactor: migrate foundationdb service from adapter::kv to impl Access directly by @koushiro in #6722
  • refactor: migrate surrealdb service from adapter::kv to impl Access directly by @koushiro in #6723
  • refactor: migrate mongodb service from adapter::kv to impl Access directly by @koushiro in #6724
  • refactor: migrate d1 service from adapter::kv to impl Access directly by @koushiro in #6725
  • refactor: migrate gridfs service from adapter::kv to impl Access directly by @koushiro in #6726
  • refactor: Migrate sqlite from adapter::kv to Access instead by @NoxTav in #6328
  • refactor: migrate sled service from adapter::kv to impl Access directly by @koushiro in #6731
  • refactor: migrate rocksdb service from adapter::kv to impl Access directly by @koushiro in #6732
  • refactor: migrate redb service from adapter::kv to impl Access directly by @koushiro in #6733
  • refactor: Remove deprecated kv and typed_kv adapters by @kingsword09 in #6734
  • refactor(hdfs): restructure HdfsBackend and introduce HdfsCore by @kingsword09 in #6736
  • refactor(hdfs-native): restructure HdfsNativeBackend and introduce HdfsNativeCore by @kingsword09 in #6737
  • refactor(services): impl Debug for all service builders by @koushiro in #6756
  • refactor(types)!: use string-based scheme over enum-based approach by @koushiro in #6765
  • refactor!: Migrate service s3 to reqsign-core 2.0 by @Xuanwo in #6656
  • refactor: Implement SimulateLayer to make simulate logic more maintai… by @Xuanwo in #6822
  • refactor!: Refactor oio::Delete to make it's API simple by @Xuanwo in #6823
  • refactor: use web-time types on wasm32 target by @tisonkun in #6852
  • refactor: Split core out to prepare for splitting by @Xuanwo in #6858
  • refactor: Reuse from_uri logic inside via iter by @Xuanwo in #6862
  • refactor: Remove scheme from python binding by @Xuanwo in #6863
  • refactor!: Remove the concept of scheme by @Xuanwo in #6864
  • refactor: Register service at the start of run time instead by @Xuanwo in #6865
  • refactor: Move services s3 out as a crate by @Xuanwo in #6866
  • refactor: Split async_backtrace layer to new crate by @Xuanwo in #6867
  • refactor(services/moka): Move services moka out as a crate by @manchangfengxu in #6868
  • refactor: Split all azure storage services and ghac by @Xuanwo in #6874
  • refactor: Split await tree layer to new crate by @Xuanwo in #6875
  • refactor(!): Remove deprecated http client config by @Xuanwo in #6878
  • refactor: Split service aliyun drive to new crate by @Xuanwo in #6879
  • refactor: Split capability check to seperate layer by @Xuanwo in #6952
  • refactor: Split service hdfs-native to new crate by @chitralverma in #6953
  • refactor: split metrics related crates to new crates by @Xuanwo in #6954
  • refactor: Split service mysql to new crate by @fenfeng9 in #6960
  • refactor: split tracing layer to new crate by @ButterBright in #6962
  • refactor: Split mime-guess layer to new crate by @koushiro in #6966
  • refactor: Split tail-cut layer to new crate by @koushiro in #6968
  • refactor: Split fastrace layer to new crate by @koushiro in #6965
  • refactor: Split oteltrace layer to new crate by @koushiro in #6969
  • refactor: Split service postgresql to new crate by @fenfeng9 in #6973
  • refactor: Split service cloudflare-kv out of core by @tao12345666333 in #6974
  • refactor: Split immutable-index layer to new crate by @koushiro in #6967
  • refactor(services/ftp): split service into its own crate by @xxxuuu in #6979
  • refactor: split throttle layer to new crate by @EricZZZ in #6980
  • refactor(services/sled): split service into its own crate by @xxxuuu in #6981
  • refactor(services/ipfs): extract ipfs service into separate crate by @XYenon in #6991
  • refactor: Split service tikv to new crate by @fenfeng9 in #6997
  • refactor: split oss service to new crate by @ButterBright in #6978
  • refactor: Split service gcs out of core by @tao12345666333 in #7002
  • refactor: Consolidate opendal_core imports in tests by @PiyushXCoder in #7012
  • refactor: Split service alluxio to new crate by @EricZZZ in #7006
  • refactor: Split service fs out of core by @tao12345666333 in #6970
  • refactor: split chaos related to new crate by @zhanghuidinah in #7010
  • refactor(services/sqlite): split sqlite service into separate crate by @yueneiqi in #7014
  • refactor: Split service b2 out of core by @tao12345666333 in #6982
  • refactor: Split mini-moka service to new crate by @koushiro in #7020
  • refactor: Split dashmap service to new crate by @koushiro in #7022
  • refactor: Split memcached service to new crate by @koushiro in #7023
  • refactor!: split opendal_core::raw::tests module into a separate crate by @koushiro in #7025
  • refactor: Split persy service to new crate by @WaterWhisperer in #7024
  • refactor: Split service cos out of core by @tao12345666333 in #7011
  • refactor: Split service github out of core by @tao12345666333 in #7018
  • refactor: Split service d1 out of core by @tao12345666333 in #7027
  • refactor: Deprecate remove_all API in favor of RFC-3911: Deleter API by @rich7420 in #6785
  • refactor: Split redb service to new crate by @WaterWhisperer in #7028
  • refactor: Split compfs service to new crate by @WaterWhisperer in #7033
  • refactor(services/opfs): split opfs service into separate crate by @STRRL in #7021
  • refactor: Split surrealdb service to new crate by @WaterWhisperer in #7045
  • refactor(services/huggingface): split huggingface into separate crate by @tao12345666333 in #7041
  • refactor(services/koofr): split koofr into separate crate by @tao12345666333 in #7043
  • refactor: Split pcloud service to new crate by @koushiro in #7047
  • refactor: Split upyun service to new crate by @koushiro in #7048
  • refactor: split swift service into a separate crate by @Sahil-Shadwal in #7054
  • refactor: Split seafile service into a separate crate by @Sahil-Shadwal in #7029
  • refactor(services/http): Move services http out as a crate by @0lai0 in #6870
  • refactor(services/onedrive): split into separate crate by @XYenon in #6996
  • refactor(services/vercel-artifacts): Split vercel-artifacts into separate crate by @kenwoodjw in #7009
  • refactor: Split lakefs service to new crate by @koushiro in #7046
  • refactor: Split logging/retry/timeout layer to new crates by @koushiro in #7053
  • refactor: Split yandex-disk service to new crate by @WaterWhisperer in #7055
  • refactor(services/gdrive): split gdrive into separate crate by @tao12345666333 in #7039
  • refactor(services/ipmfs): split ipmfs into separate crate by @tao12345666333 in #7042
  • refactor(services/webdav): split webdav service into separate crate by @PiyushXCoder in #7065
  • refactor(services/hdfs): split hdfs into separate crate by @tao12345666333 in #7040
  • refactor(services/webhdfs): split webhdfs service into separate crate by @PiyushXCoder in #7067
  • refactor: split monoiofs service into a separate crate by @codxbrexx in #7038
  • refactor: split sftp service into a separate crate by @Sahil-Shadwal in #7060
  • refactor: split concurrent-limit layer as a crate by @PsiACE in #7073
  • refactor: split gridfs service out as new crate by @codxbrexx in #7037
  • refactor(services/mongodb): split mongodb service into separate crate by @PiyushXCoder in #7079
  • refactor(layers/dtrace): split dtrace layer into separate crate by @PiyushXCoder in #7078
  • refactor(services/rocksdb): split rocksdb service as a crate by @KarinaMilet in #7081
  • refactor: Split redis service to new crate by @koushiro in #7091
  • refactor: Register services only in opendal by @Xuanwo in #7093
  • refactor(core): Optimize Writer::write_from to avoid extra copy by @zenyanle in #7098
  • refactor(foyer): seperate mods from lib.rs by @flaneur2020 in #7154
  • build(deps): move url to workspace dependencies by @zenyanle in #7161
  • refactor: Migrate oss to reqsign core v2 by @Xuanwo in #7165
  • refactor(hf): use the official hf scheme instead of huggingface by @kszucs in #7193
  • refactor(core): allow opt-out ctor dependency by @tisonkun in #7196
  • refactor(services/obs): migrate obs to reqsign-core v2 by @koushiro in #7169
  • refactor(services/azure): migrate azblob azdls azfile to reqsign v2 by @Xuanwo in #7226
  • refactor(services/cos): migrate to reqsign v2 by @Xuanwo in #7228
  • refactor(services/gcs): migrate to reqsign v2 by @Xuanwo in #7229
  • refactor(core): route reqsign send via accessor http client by @Xuanwo in #7234

Fixed

  • fix(services/cloudflare_kv): Use DEFAULT_SCHEME constant for Cloudflare KV scheme by @kingsword09 in #6568
  • fix(bindings/d): Enhance D bindings build script and tests for OpenDAL by @kingsword09 in #6569
  • fix(services/obs): send Range header only for non-full reads by @QuakeWang in #6574
  • ci: Fix default branch name in Ruby release workflow by @erickguan in #6585
  • fix: expose ListDyn + WriteDyn by @bonsairobo in #6596
  • fix(integrations/cloud_filter): upgrade cloud_filter to resolve CI failures after Rust 1.90.0 by @kingsword09 in #6602
  • fix(integrations/unftp-sbe): properly shutdown after write by @choucavalier in #6601
  • fix(azblob): don't call AzureStorageConfig::from_env on wasm by @bonsairobo in #6594
  • fix: censor the "sig" query param for Azure SAS URIs by @bonsairobo in #6603
  • fix(bindings/ruby): publish ruby binding gem by @erickguan in #6606
  • fix(docs): docs.rs built failed by @FreeChenMou in #6658
  • fix(layers/throttle): await limiter before throttled writes by @TennyZhuang in #6671
  • fix:(bindings/python) Minor fix in stubs by @chitralverma in #6744
  • fix: retry on 409 with AWS S3 by @wolfv in #6742
  • fix(bindings/ruby): fix release build error by @erickguan in #6766
  • fix(binding/nodejs): add missing lister methods by @Kilerd in #6769
  • fix(bindings/python): Update python/stubgen & core/hdfs-native by @chitralverma in #6774
  • fix(services/huggingface): Allow users to use datasets as an alias to dataset repo type by @Xuanwo in #6826
  • fix(services/huggingface): Implement pagination with Link header for large repos by @AryanBagade in #6832
  • bug: write operation won't split payload into chunks following configuration by @0lai0 in #6796
  • fix(services/s3): add md5 to to list of available checksum algos by @Gabriel-J-Young in #6854
  • chore: Format and update tomls by @chitralverma in #6877
  • chore: Upgrade redis dependency to version 1 by @nihohit in #6959
  • fix(bindings/java): Detach current thread while thread drop by @Xuanwo in #7000
  • fix(core): add --workspace arg to clippy/test workflows of core ci by @koushiro in #7050
  • fix(services/gdrive): include size and modifiedTime in list() metadata by @mro68 in #7058
  • fix(services/gdrive): Fix prefix list not handeled correctly by @Xuanwo in #7070
  • make sure CompleteWriter is enforcing the right invariants by @carlsverre in #7056
  • fix(core): skip PermissionDenied errors in recursive lister by @userzhy in #7096
  • test(core): remove assert_size tests by @Xuanwo in #7167
  • fix(bindings/python): improve the typing discovering of the python package by @frostming in #7180
  • fix(object_store): implement get_range() to avoid unnecessary stat() calls by @kszucs in #7192
  • fix(services/swift): add missing copy capability flag by @benroeder in #7204
  • fix(services/swift): forward write headers to Swift API by @benroeder in #7206
  • fix(services/fs): add content length and modified time to metadata by @mhambre in #7188
  • fix(core): enforce list file content length in complete layer by @Xuanwo in #7201
  • fix(integrations/unftp-sbe): avoid copy flush amplification by @Xuanwo in #7217
  • fix(services/seafile): avoid defaulting list size to zero by @Xuanwo in #7221
  • fix(services/azfile): avoid defaulting list size to zero by @Xuanwo in #7220
  • fix(core): skip NotFound during concurrent recursive listing by @Xuanwo in #7230
  • fix(observability): Fix http logic error metrics collection by @dentiny in #7259
  • fix(observability): Update stream metrics on stream errors and drops by @dentiny in #7261
  • fix(observability): Fix TTFB histogram bucket by @dentiny in #7271
  • fix(observability): Fix executing operation gauge decrement on error by @dentiny in #7267
  • fix(observability): do not account processed entries count when list none by @dentiny in #7269
  • fix(s3): Fix missing user-provided write operation for S3 on presign by @dentiny in #7276
  • fix(s3): respect content encoding for multipart upload initialization by @dentiny in #7274
  • fix(layers/timeout): Fix timeout wrapper for delete operation by @dentiny in #7279
  • fix(reader): fix potential out-of-bound seek by @dentiny in #7282
  • fix(reader): Fix reader fetch with empty ranges by @dentiny in #7286
  • fix(s3): Fix improper handle for copy response by @dentiny in #7294
  • fix(tracing): fix trace span instrumentation by @dentiny in #7292
  • fix(observability): fix executing operation gauge on timeout by @dentiny in #7301
  • fix(s3): fix incorrect md5 for list operations by @dentiny in #7298
  • fix(observability): Fix failed operation/request gauge on timeout by @dentiny in #7303
  • fix(s3): Fix entry mode and raw entry assertion by @dentiny in #7308
  • fix(delete): poll deleter close future on exit by @dentiny in #7316
  • fix(util): Fix panic on invalid bytes range by @dentiny in #7314
  • fix(copy): Fix error propagation operation by @dentiny in #7318
  • fix(correctness check): add missing conditional write capability check by @dentiny in #7320
  • fix(correctess check): validate copy capability and request by @dentiny in #7322
  • fix(s3): fix missing complete multipart upload headers by @dentiny in #7327
  • fix(dev): sync release package versions by @Xuanwo in #7342
  • fix(s3): add missing content write content disposition capability by @dentiny in #7349
  • fix(metrics): fix missing errors total counter by @dentiny in #7357
  • fix(core): use web-time only for wasm32-unknown-unknown target by @ngg in #7360
  • fix(core): fix deadlock for concurrent read and concurrent limit layer by @dentiny in #7346
  • ci(hf): isolate CI repos and stabilize binding tests by @Xuanwo in #7368
  • fix(core): trim metadata debug output by @Xuanwo in #7366
  • fix(core): spawn blocking ops onto worker pool to avoid stack overflow by @kszucs in #7371
  • fix(hf): include folder deletions in git commit payload by @kszucs in #7375
  • fix(services/cos): preserve list metadata etag and last_modified by @suyanhanx in #7331
  • fix(chaos): fix cases when error ratio = 1 by @dentiny in #7412
  • fix(s3): fix dead code to strip suffix by @dentiny in #7411

Docs

  • doc(bindinds/ruby): add examples and links by @erickguan in #6609
  • docs: spelling and minor wording change by @carlsonp in #6620
  • docs(bin): add badges to bin tools README by @kingsword09 in #6642
  • docs(python): add documentation for local usage by @jayceslesar in #6480
  • docs(apps): add migration guide, update links; remove bin/{oli,ofs} (#6689) by @tao12345666333 in #6705
  • docs(core/types): add some comments for Buffer by @meteorgan in #6746
  • docs: Make it clear that bindings have different version with rust core. by @0lai0 in #6780
  • docs: add 1password self-registration link for committers by @PsiACE in #6804
  • RFC-6817: Checksum by @Xuanwo in #6817
  • docs: improve README of core/examples by @bettermultiply in #6839
  • docs: Make it clear that opendal list returns prefix by @Xuanwo in #6835
  • docs: Fix build for ruby docs by @Xuanwo in #6876
  • docs: Correcting errors in the c-bindings README example by @bettermultiply in #7100
  • docs: require following PR template in AGENTS.md by @Xuanwo in #7219
  • docs: refresh split release documentation by @Xuanwo in #7344
  • docs: update changelog for v0.56.0 rc3 by @Xuanwo in #7431

CI

Chore

  • ci: switches etcd image to official etcd image by @kingsword09 in #6562
  • chore(bindings/nodejs): replace custom sleep with setTimeout in tests by @kingsword09 in #6563
  • chore(layers/prometheus-client): upgrade prometheus-client dependency to v0.24 by @koushiro in #6523
  • chore(core): typo: update comments on BytesRange::new by @TheR1sing3un in #6570
  • chore(website): update The ASF logo by @suyanhanx in #6575
  • chore: fix website build by @tisonkun in #6579
  • chore: make clippy happy when using rust 1.90.0 by @kingsword09 in #6590
  • chore: apache project provides code under ALv2 by @tisonkun in #6598
  • chore: remove dead project openval by @Xuanwo in #6604
  • chore: upgrade opentelemetry to 0.31.0 by @tisonkun in #6623
  • chore(deps): bump tempfile from 3.20.0 to 3.23.0 in /bin/ofs by @dependabot[bot] in #6611
  • chore(deps): bump tempfile from 3.21.0 to 3.23.0 in /bin/oli by @dependabot[bot] in #6610
  • chore(deps): update datafusion requirement from 49.0.2 to 50.0.0 in /integrations/object_store by @dependabot[bot] in #6613
  • chore(deps): bump @docusaurus/plugin-client-redirects from 3.8.1 to 3.9.1 in /website by @dependabot[bot] in #6614
  • chore: avoid build warning by @tisonkun in #6627
  • build: update docusaurus together by @asukaminato0721 in #6626
  • chore(deps): bump the github-actions group with 8 updates by @dependabot[bot] in #6633
  • chore(deps): bump logforth from 0.27.0 to 0.28.1 in /bin/ofs by @dependabot[bot] in #6629
  • chore(deps): bump the http-serialization-utils group in /core with 7 updates by @dependabot[bot] in #6634
  • chore(deps): bump clap from 4.5.38 to 4.5.41 in /bin/oli by @dependabot[bot] in #6630
  • chore(deps): bump the logs-errors-checksums group in /core with 2 updates by @dependabot[bot] in #6635
  • chore(deps): bump the pyo3 group in /bindings/python with 2 updates by @dependabot[bot] in #6631
  • chore(deps): bump the third-party-actions group with 2 updates by @dependabot[bot] in #6636
  • chore(deps): bump axum from 0.7.9 to 0.8.6 in /bin/oay by @dependabot[bot] in #6612
  • chore(deps): bump the others group in /core with 15 updates by @dependabot[bot] in #6637
  • chore: OpenDAL MSRV to 1.85 and edition 2024 by @fatelei in #6615
  • refactor!: migrate chrono to jiff by @tisonkun in #6643
  • chore: support more error codes for S3-compatible services by @leiysky in #6651
  • chore: fixup timestamp refactor by @tisonkun in #6663
  • chore: remove oay: delete bin/oay; drop CI; update release/dev tooling, dependabot, docs by @tao12345666333 in #6691
  • chore: cleanup for moving oli/ofs and removing oay (#6689) by @tao12345666333 in #6700
  • chore(deps): bump actions/setup-node from 5 to 6 in the github-actions group by @dependabot[bot] in #6695
  • chore(deps): bump the http-serialization-utils group across 1 directory with 3 updates by @dependabot[bot] in #6717
  • chore(deps): bump the others group in /core with 2 updates by @dependabot[bot] in #6698
  • chore(deps): bump tokio from 1.47.1 to 1.48.0 in /core in the async-runtime group by @dependabot[bot] in #6696
  • chore: remove integrations cloud_filter and fuse3; update CI/docs/README by @tao12345666333 in #6727
  • chore: fixup README render and broken links by @tisonkun in #6735
  • chore: apply suggestions from clippy 1.91.0 by @kingsword09 in #6754
  • chore: cleanup some useless code related to services that were removed due to lack of maintenance by @koushiro in #6763
  • chore: rename delete module => deleter module; ServiceAccessor => ServiceBackend by @koushiro in #6757
  • chore(services): unify scheme usage by @koushiro in #6764
  • chore(services): remove empty list operation and update docs of all services by @koushiro in #6768
  • Bump to version 0.55.0 by @Xuanwo in #6771
  • chore(types)!: remove deprecated Operator::from_map and Operator::via_map by @koushiro in #6775
  • chore(types)!: remove deprecated list_with_version capability by @koushiro in #6781
  • chore(services/s3)!: remove deprecated S3::security_token by @koushiro in #6779
  • chore(services/fs): use NotADirectory directly by @meteorgan in #6786
  • chore: Fix build by @Xuanwo in #6789
  • chore: Don't introduce openssl for python binding by @Xuanwo in #6790
  • chore(layers/timeout)!: remove deprecated with_speed method by @koushiro in #6793
  • chore: random code and comments tidy by @tisonkun in #6808
  • chore: ring has been migrated to new license by @tisonkun in #6811
  • chore: fine tune deny configs by @tisonkun in #6812
  • chore: suppress noisy deny warnings by @tisonkun in #6816
  • chore: move from tokio::sync to mea primitives by @tisonkun in #6818
  • chore: use fastpool as object pool impl by @tisonkun in #6820
  • chore: Migrate CLAUDE.md to AGENTS.md by @Xuanwo in #6825
  • chore(deps): update datafusion requirement from 50.0.0 to 51.0.0 in /integrations/object_store by @dependabot[bot] in #6840
  • chore(bindings): remove Scheme enum from some bindings by @koushiro in #6776
  • chore(core): remove redundant clones by @TennyZhuang in #6955
  • chore(core): avoid inefficient to_string by @TennyZhuang in #6956
  • chore(core): clean up some miscs related to deprecated http client config by @koushiro in #6957
  • chore(services/vercel-blob): split crate from core by @kenwoodjw in #6971
  • chore(ci): make clippy happy when using rust 1.92.0 by @koushiro in #6985
  • chore(services/obs): split obs service into standalone crate by @kenwoodjw in #6977
  • chore(core): remove unused dependencies by @chitralverma in #6987
  • chore(core): pub message of Error struct by @sundy-li in #6986
  • chore: Upgrade logforth to 0.29.1 by @tisonkun in #7015
  • chore: Update cargo.lock by @Xuanwo in #7052
  • chore: fine tune OperatorInputStream by @tisonkun in #7089
  • chore(layers): unify layer crates and gate dtrace on linux by @koushiro in #7094
  • chore: volunteer to review all PRs by @tisonkun in #7111
  • chore: no need Error::map method by @tisonkun in #7110
  • chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in #7121
  • chore(deps): bump tracing from 0.1.43 to 0.1.44 in /core in the logs-errors-checksums group by @dependabot[bot] in #7123
  • chore(deps): bump the third-party-actions group with 6 updates by @dependabot[bot] in #7125
  • chore(deps): bump the others group in /core with 11 updates by @dependabot[bot] in #7126
  • chore(deps): bump the http-serialization-utils group in /core with 2 updates by @dependabot[bot] in #7122
  • chore: upgrade to mea 0.6.0 by @tisonkun in #7132
  • chore(layer/fastmetrics): upgrade fastmetrics to v0.6.0 by @koushiro in #7135
  • chore: reduce tracing deps by @tisonkun in #7146
  • chore(deps): bump the pyo3 group in /bindings/python with 2 updates by @dependabot[bot] in #7120
  • chore(deps): bump the docusaur group in /website with 3 updates by @dependabot[bot] in #7174
  • chore(docs): fix docs for writer_options by @meteorgan in #7157
  • chore: binding java's dependency by @tisonkun in #7198
  • chore(bindings/dotnet): update framework and use LibraryImport by @Fatorin in #7222
  • chore(layer/fastmetrics): upgrade fastmetrics to v0.7.0 by @koushiro in #7227
  • chore(deps-dev): bump the others group in /website with 2 updates by @dependabot[bot] in #7232
  • chore(release): prepare v0.56.0 release by @Xuanwo in #7392
  • chore(license): add licensing comments to stub_gen.rs by @PsiACE in #7426

New Contributors

Full Changelog: v0.54.1...v0.56.0

Don't miss a new opendal release

NewReleases is sending notifications on new releases.