Breaking Changes
- core:
Scheme-based APIs are now fully string-based. MigrateOperator::from_mapandOperator::via_mapcall sites tofrom_iterandvia_iter, and stop matching onSchemevalues directly. - core: service-builder
http_clienthooks andTimeoutLayer::with_speedhave been removed after deprecation. Move HTTP customization to layered/client APIs and replacewith_speedwithwith_io_timeout. - core: low-level test helpers moved out of
opendal::raw::tests. Useopendal::testsor depend onopendal-testkitdirectly for out-of-tree services and integrations. - integrations/parquet:
parquet_opendalnow targets Arrow 58 and ships as0.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_sizeoption 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
fileas an alias scheme forfsby @userzhy in #7075 - feat(layers/hotpath): add HotpathLayer integration by @PsiACE in #7083
- feat(bindings/java): Speed up the performance of
OperatorInputStreamby @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_ranges2x 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.rsinstead 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
hfscheme instead ofhuggingfaceby @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
- ci: Switch from --nocapture to --no-capture by @kingsword09 in #6567
- ci: Add patch file to Ruby release workflow by @erickguan in #6592
- build: enhance build website by @tisonkun in #6640
- ci: use shas fix action permissions by @kenwoodjw in #6659
- ci: Bump doc toolchain to allow opendal docs build by @Xuanwo in #6661
- ci: build and test on python3.14t by @kenwoodjw in #6670
- ci(nodejs): enable npm trusted publishing by @kingsword09 in #6685
- ci: remove ofs behavior tests and planning (#6689) by @tao12345666333 in #6704
- ci: Auto add ML thread link in github discussion by @Xuanwo in #6709
- ci: Fix bug in discussion thread link auto append by @Xuanwo in #6711
- ci: Fix GHA CI again by @Xuanwo in #6712
- ci: Remove hdfs-native from arm platform by @Xuanwo in #6792
- ci(python): Build wheels in native runners by @Xuanwo in #6821
- ci: Add full ci promote for testing PRs by @Xuanwo in #6845
- ci: Trigger CI workflow correctly by @Xuanwo in #6847
- ci: Fix wrong permissions in YAML by @Xuanwo in #6848
- ci: Allow test_behavior to be called with dispatch by @Xuanwo in #6850
- ci: Add AI Usage Statement by @Xuanwo in #6972
- ci(bindings/ocaml): Use dyn link instead by @Xuanwo in #6988
- ci: Remove setup-protoc entirely by @Xuanwo in #6994
- ci: Add checks for taplo by @Xuanwo in #7016
- ci: Enable auto-merge for PRs by @Xuanwo in #7017
- ci: Fix doc test for yandex-disk by @Xuanwo in #7063
- ci: Split unit and doc tests by @Xuanwo in #7064
- ci(bindings/go): Remove unexpected list prefix tests by @Xuanwo in #7084
- ci: Refactor behavior test planner for services split by @Xuanwo in #7085
- ci: skip azurite's version check by @meteorgan in #7162
- ci: Try fixing haskell CI by @Xuanwo in #7164
- ci: use go-version-file by @tisonkun in #7195
- ci: Delete ci_weekly_update workflow by @Xuanwo in #7202
- ci: pin approved GitHub Actions refs by @Xuanwo in #7290
- ci(fixtures): pin owncloud image tag by @Xuanwo in #7305
- feat(bindings/dotnet):Bindings dotnet publish to nuget by @Fatorin in #7323
- ci: update path filters for split core layout by @Xuanwo in #7343
- ci: publish all rust crates in dependency order by @Xuanwo in #7352
- ci: migrate seafile fixture to 13.x by @Xuanwo in #7373
- ci: temporarily disable gdrive behavior tests by @Xuanwo in #7385
- ci: fix release workflows for actions allowlist by @Xuanwo in #7432
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::newby @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_mapandOperator::via_mapby @koushiro in #6775 - chore(types)!: remove deprecated
list_with_versioncapability by @koushiro in #6781 - chore(services/s3)!: remove deprecated
S3::security_tokenby @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_speedmethod 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
Schemeenum 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
- @TheR1sing3un made their first contribution in #6570
- @howardlau1999 made their first contribution in #6504
- @QuakeWang made their first contribution in #6574
- @justinjoseph89 made their first contribution in #6589
- @bonsairobo made their first contribution in #6596
- @choucavalier made their first contribution in #6601
- @carlsonp made their first contribution in #6620
- @FreeChenMou made their first contribution in #6658
- @dami0806 made their first contribution in #6650
- @yunchipang made their first contribution in #6660
- @jayceslesar made their first contribution in #6480
- @NoxTav made their first contribution in #6328
- @wolfv made their first contribution in #6742
- @trxcllnt made their first contribution in #6759
- @sebbASF made their first contribution in #6783
- @0lai0 made their first contribution in #6780
- @kszucs made their first contribution in #6801
- @rich7420 made their first contribution in #6806
- @AryanBagade made their first contribution in #6832
- @bettermultiply made their first contribution in #6839
- @zhan7236 made their first contribution in #6842
- @Gabriel-J-Young made their first contribution in #6854
- @manchangfengxu made their first contribution in #6868
- @nihohit made their first contribution in #6959
- @fenfeng9 made their first contribution in #6960
- @ButterBright made their first contribution in #6962
- @clbarnes made their first contribution in #6990
- @EricZZZ made their first contribution in #6980
- @PiyushXCoder made their first contribution in #7012
- @zhanghuidinah made their first contribution in #7010
- @yueneiqi made their first contribution in #7014
- @WaterWhisperer made their first contribution in #7024
- @carlsverre made their first contribution in #7036
- @Sahil-Shadwal made their first contribution in #7054
- @mro68 made their first contribution in #7058
- @codxbrexx made their first contribution in #7038
- @userzhy made their first contribution in #7075
- @KarinaMilet made their first contribution in #7081
- @zenyanle made their first contribution in #7098
- @weihanglo made their first contribution in #7177
- @benroeder made their first contribution in #7204
- @mhambre made their first contribution in #7188
- @antoine-de made their first contribution in #7186
- @ddupg made their first contribution in #7233
- @dentiny made their first contribution in #7244
- @jo-migo made their first contribution in #7250
- @atakiar made their first contribution in #7265
- @comphead made their first contribution in #7243
- @mmastrac made their first contribution in #7336
- @unbrice made their first contribution in #7251
- @qingfeng-occ made their first contribution in #7248
- @ngg made their first contribution in #7360
- @spereyra-dev made their first contribution in #7381
Full Changelog: v0.54.1...v0.56.0