Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: apache/opendal

v0.54.1

11 Sep 15:18
v0.54.1
b93c3ae

Choose a tag to compare

What's Changed

Added

  • feat: Conditional reader for cos by @pmupkin in #6424
  • feat: Add project layout for openval by @Xuanwo in #6427
  • feat: Add if-not-exists support for copy with azblob as example by @Xuanwo in #6447
  • feat(bindings/cpp): enhance Metadata API with comprehensive feature a… by @JackDrogon in #6445
  • feat: Add prefetch support for concurrent read by @Xuanwo in #6449
  • feat(bindings/cpp): adopt Google C++ Style Guide for API naming by @JackDrogon in #6448
  • feat(object_store): Implement copy, rename and return metadata after writing by @codephage2020 in #6452
  • feat(object_store): Implement copy_if_not_exists, put_multipart_opts and metadata in GetResult by @codephage2020 in #6468
  • chore(deps): add groups for nodejs by @asukaminato0721 in #6469
  • feat(bindings/ocaml): add more blocking api for ocaml by @asukaminato0721 in #6238
  • fix(bindings/cpp): Add capability to fix failed tests by @asukaminato0721 in #6488
  • feat(bindings/cpp): enable user-configurable features for storage services by @KinomotoMio in #6503
  • feat(services/oss): add support for security token for Aliyun OSS by @cavivie in #6511
  • feat(services/azblob): Add compatibility aliases for Apache Arrow object_store by @jackye1995 in #6527
  • feat(services/gcs): add configuration aliases for better Arrow object_store compatibility by @jackye1995 in #6526
  • feat(services/s3): add configuration aliases for better Arrow object_store compatibility by @jackye1995 in #6524
  • feat: allow using object_store as opendal's backend by @flaneur2020 in #6283
  • feat(services/opfs): Add create_dir support for OPFS by @crwen in #6542
  • feat(bindings/ruby): support file open options by @erickguan in #6538

Changed

  • refactor(website): remove unused dependencies and update node engine requirement by @kingsword09 in #6421
  • refacrtor: Reduce usage of scheme inside raw by @Xuanwo in #6457
  • refactor: Migrate etcd service to implement Access directly by @kingsword09 in #6420

Fixed

  • fix(bin/oli): Fix tests when TMPDIR is not /tmp by @XYenon in #6429
  • fix: patch futures buffer concurrent by @tisonkun in #6442
  • fix(services/oss): unnecessary header 'content-type' are included in the get_object request by @honsunrise in #6455
  • fix(services/moka): prevent the weigher from being overwritten by @koushiro in #6498
  • fix(services/azblob): Fix azblob base64 validation by @kenwoodjw in #6500
  • fix(bindings/nodejs): use value.prefetch instead of value.concurrent for prefetch option by @kingsword09 in #6502
  • fix(integrations/object_store): remove redundant into_iter() call by @KinomotoMio in #6509
  • fix(bindings/cpp): correct cxx_async namespace attribute by @kingsword09 in #6514
  • Fix: make cpp binding build robust by @devillove084 in #6460
  • fix: Do not trim trailing slash of name_node by @wForget in #6556

Docs

  • docs(release): fix CI workflow links for bindings by @kingsword09 in #6437
  • docs: Update RFC-5444 Operator From Uri by @Xuanwo in #6453
  • docs(core): update docs of building a storage service by @crwen in #6554

CI

Chore

  • chore(deps): bump quick-xml from 0.37.5 to 0.38.0 in /bin/oay by @dependabot[bot] in #6416
  • chore(deps): bump the http-serialization-utils group in /core with 6 updates by @dependabot[bot] in #6414
  • chore: Fix clippy for object_store by @Xuanwo in #6422
  • chore(deps): bump the others group across 1 directory with 17 updates by @dependabot[bot] in #6432
  • chore(website): upgrade prism-react-renderer to v2.4.1 by @kingsword09 in #6433
  • chore(deps): bump tokio from 1.46.1 to 1.47.0 in /bin/oay by @dependabot[bot] in #6466
  • chore(deps): bump tokio from 1.46.1 to 1.47.0 in /bin/oli by @dependabot[bot] in #6464
  • chore(deps): bump tokio from 1.46.1 to 1.47.0 in /bin/ofs by @dependabot[bot] in #6463
  • chore(deps): bump the others group in /core with 2 updates by @dependabot[bot] in #6478
  • chore(deps): bump indicatif from 0.17.11 to 0.18.0 in /bin/oli by @dependabot[bot] in #6474
  • chore(deps): bump the http-serialization-utils group in /core with 2 updates by @dependabot[bot] in #6476
  • chore(deps): bump tokio from 1.46.1 to 1.47.1 in /core in the async-runtime group by @dependabot[bot] in #6477
  • chore(bindings/nodejs): upgrade deps napi-rs to 3.0 by @kingsword09 in #6482
  • chore: make clippy happy again by @kingsword09 in #6493
  • chore(bindings/nodejs): update generated code comments style due to napi-derive indentation fix by @kingsword09 in #6501
  • feat: expose APIs for ErrorStatus by @tisonkun in #6513
  • chore(layers/fastmetrics): upgrade fastmetrics dependency to v0.4 by @koushiro in #6534
  • chore(deps-dev): bump crates-llms-txt from 0.0.8 to 0.1.1 in /website by @dependabot[bot] in #6548
  • chore(deps): bump logforth from 0.26.1 to 0.27.0 in /bin/oay by @dependabot[bot] in #6546
  • chore(deps): bump tempfile from 3.20.0 to 3.21.0 in /bin/oli by @dependabot[bot] in #6544
  • chore(deps): update datafusion requirement from 48.0.0 to 49.0.2 in /integrations/object_store by @dependabot[bot] in #6545
  • chore(deps): bump logforth from 0.26.1 to 0.27.0 in /bin/ofs by @dependabot[bot] in #6547
  • Bump version to 0.54.1 by @Xuanwo in #6558

New Contributors

Full Changelog: v0.54.0...v0.54.1

v0.54.0

17 Jul 07:06
v0.54.0
a1b8109

Choose a tag to compare

Upgrade Notes

Rust Core Public API

RFC-6189: Remove Native Blocking Support

OpenDAL v0.54 implements RFC-6189, which removes all native blocking support in favor of using block_on from async runtimes.

The following breaking changes have been made:

  • blocking::Operator can no longer be used within async contexts
  • Using blocking APIs now requires an async runtime
  • All Blocking* types have been moved to the opendal::blocking module

To migrate:

- use opendal::BlockingOperator;
+ use opendal::blocking::Operator;

RFC-6213: Options Based API

OpenDAL v0.54 implements RFC-6213, which introduces options-based APIs for more structured and extensible operation configuration.

New APIs added:

  • read_options(path, ReadOptions)
  • write_options(path, data, WriteOptions)
  • list_options(path, ListOptions)
  • stat_options(path, StatOptions)
  • delete_options(path, DeleteOptions)

Example usage:

// Read with options
let options = ReadOptions::new()
    .range(0..1024)
    .if_match("etag");
let data = op.read_options("path/to/file", options).await?;

// Write with options  
let options = WriteOptions::new()
    .content_type("text/plain")
    .cache_control("max-age=3600");
op.write_options("path/to/file", data, options).await?;

Remove stat_has_xxx and list_has_xxx APIs

All stat_has_* and list_has_* capability check APIs have been removed. Instead, check capabilities directly on the Capability struct:

- if op.info().full_capability().stat_has_content_length() {
+ if op.info().full_capability().stat.content_length {
    // ...
}

Fix with_user_metadata signature

The signature of with_user_metadata has been changed. Please update your code accordingly if you use this method.

Services removed due to lack of maintainer

The following services have been removed due to lack of maintainers:

  • atomicserver
  • icloud
  • nebula_graph

If you need these services, please consider maintaining them or use alternative services.

HttpClientLayer replaces update_http_client

The Operator::update_http_client() method has been replaced by HttpClientLayer:

- op.update_http_client(client);
+ op = op.layer(HttpClientLayer::new(client));

Expose presign_xxx_options API

New options-based presign APIs have been exposed:

let options = PresignOptions::new()
    .expire(Duration::from_secs(3600));
    
let url = op.presign_read_options("path/to/file", options).await?;

Rust Core Raw API

Remove native blocking support

All native blocking implementations have been removed from the raw API. Services and layers no longer need to implement blocking-specific methods.

Bindings Java Breaking changes

Removed services

The following services have been removed:

  • Chainsafe service has been removed (PR-5744) - The service has been sunset.
  • libsql service has been removed (PR-5616) - Dead service removal.

Batch operations removed

PR-5393 removes the batch concept from OpenDAL. All batch-related operations and capabilities have been removed.

Capability changes

  • write_multi_align_size capability has been removed (PR-5322)
  • Added new shared capability (PR-5328)

Options-based API

New options classes have been introduced for structured operation configuration:

  • ReadOptions - for read operations
  • WriteOptions - for write operations
  • ListOptions - for list operations
  • StatOptions - for stat operations

Example usage:

// Read with options
ReadOptions options = ReadOptions.builder()
    .range(0, 1024)
    .ifMatch("etag")
    .build();
byte[] data = operator.read("path/to/file", options);

// Write with options
WriteOptions options = WriteOptions.builder()
    .contentType("text/plain")
    .cacheControl("max-age=3600")
    .build();
operator.write("path/to/file", data, options);

Bindings Python

Breaking change: Native blocking API removed

OpenDAL has removed the native blocking API in the core. The Python binding's blocking API now uses an async runtime internally. This is a transparent change and should not affect most users, but:

  • The blocking API now requires an async runtime to be available
  • Performance characteristics may be slightly different
  • All blocking operations are now implemented as async operations running in a tokio runtime

Breaking change: Removed services

The following services have been removed due to lack of maintainers and users:

  • atomicserver - This service is no longer supported
  • icloud - This service is no longer supported
  • nebula_graph - This service is no longer supported

If you were using any of these services, you'll need to migrate to an alternative storage backend.

Breaking change: Chainsafe service removed

The Chainsafe service has been sunset and is no longer available.

What's Changed

Added

Changed

  • refactor(core/types)!: fix with_user_metadata signature by @meteorgan in #5960
  • refactor(!): Remove services lack of maintainers and users by @Xuanwo in #6263
  • refactor(services/moka)!: replace sync::Cache with future::Cache by @koushiro in #6270
  • refactor(bindings/go): Restructure FFI system with type-safe wrapper by @yuchanns in #6268
  • refactor: Migrate redis from adapter::kv to Access instead by @Xuanwo in #6291
  • refactor: Migrate moka from adapter::typed_kv to Access instead by @Xuanwo in #6300
  • refactor: Migrate memory service to implment Access directly by @Xuanwo in #6301
  • refactor: Migrate services cacache to implement Access by @Xuanwo in #6303
  • refactor!: Remove stat_has_xxx and list_has_xxx by @Xuanwo in #6313
  • re...
Read more

v0.48.3

17 Jul 06:39
8ed2692

Choose a tag to compare

refactor(website): remove unused dependencies and update node engine …

v0.53.3

27 May 06:56
v0.53.3
4e00288

Choose a tag to compare

What's Changed

Added

Changed

  • refactor(bindings/java): deprecate append in favor of write with append=true by @kingsword09 in #6169
  • refactor(core): Put Backtrace in a box to reduce error size by @Xuanwo in #6193

Fixed

  • fix(bindings/go): update dependencies by @JupiterRider in #6175
  • fix(integrations/object_store): fix double percent encoding by @Colerar in #6166
  • fix(services/fs): Make fs services work on our MSRV by @Xuanwo in #6183
  • fix(services/s3): Remove not needed check for batch delete by @Xuanwo in #6206

Docs

CI

  • ci: uses taiki-e/install-action to replace cargo insatll by @xxchan in #6168
  • ci(bindings/node): Add contents permissions for nodejs release by @Xuanwo in #6182
  • ci(bindings/java): Enable zig build for java by @Xuanwo in #6181
  • ci: Fix behavior tests for go bindings by @Xuanwo in #6199

Chore

New Contributors

Full Changelog: v0.53.2...v0.53.3

v0.53.2

13 May 09:31
v0.53.2
dfb1940

Choose a tag to compare

What's Changed

Added

Changed

  • refactor(core): Deprecate not used options in OpList by @Xuanwo in #6050
  • refactor(services/gdrive): move raw requests to core by @jorgehermo9 in #6088
  • refactor(services/ghac): move raw http calls to core by @jorgehermo9 in #6095
  • refactor(services/yandex_disk): Move raw request to core by @jorgehermo9 in #6090
  • refactor(services/azdls): Refactor raw request send in writer and bac… by @jorgehermo9 in #6109
  • refactor(services/seafile): Refactor raw request send in writer and lister by @jorgehermo9 in #6104
  • refactor(services/azblob): Refactor raw request send in writer by @jorgehermo9 in #6102
  • refactor(services/aliyun_drive): Move raw request to core by @jorgehermo9 in #6089
  • refactor(services/webhdfs): Refactor raw request send in writer and backend by @jorgehermo9 in #6113
  • refactor(bindings/go): add ffiCall type for FFI function signature by @yuchanns in #6158

Fixed

  • fix(core): Only run size tests on 64bit platforms by @cryptomilk in #6078
  • fix(bindings/go): Reader returns io.EOF at the end of file by @yuchanns in #6150
  • fix(core/services/fs): Returning empty dir while list a file path by @Xuanwo in #6154

Docs

  • doc(services/onedrive): add a comment about onedrive's writer by @erickguan in #6120

CI

  • ci(bindings/go): include sqlite service into behavior tests by @yuchanns in #6039

Chore

  • chore: delete unused code in scripts by @yihong0618 in #6084
  • chore(integrations/unftp): Make compatible with latest libunftp by @hannesdejager in #6094
  • chore(deps): bump logforth from 0.23.1 to 0.24.0 in /bin/ofs by @dependabot in #6137
  • chore(deps): bump assert_cmd from 2.0.16 to 2.0.17 in /bin/oli by @dependabot in #6138
  • chore(deps): bump logforth from 0.23.1 to 0.24.0 in /bin/oay by @dependabot in #6139
  • chore(deps): update dav-server requirement from 0.7.0 to 0.8.0 in /integrations/dav-server by @dependabot in #6133
  • chore(deps): bump golangci/golangci-lint-action from 6 to 7 by @dependabot in #6134

New Contributors

Full Changelog: v0.53.1...v0.53.2

v0.53.1

19 Apr 04:01
v0.53.1
551b361

Choose a tag to compare

What's Changed

Added

Changed

  • refactor: Remove dead code ConcurrentFutures by @Xuanwo in #5939
  • refactor(layers/tracing): Ensure the entire async function been traced by @Xuanwo in #6000

Fixed

Docs

CI

Chore

New Contributors

Full Changelog: v0.53.0...v0.53.1

v0.53.0

05 Apr 03:29
v0.53.0
12a076c

Choose a tag to compare

Upgrade to Rust Core v0.53

Public API

Supabase service is now an S3-compatible servcice

Supabase Storage is now an S3-compatible service instead: https://github.com/supabase/storage.

We removed the supabase native service support in OpenDAL v0.53. Users who want to access Supabase Storage can use the S3 service instead.

All metrics related layers have been refactored

All metrics layers have been refactored:

  • PrometheusLayer
  • PrometheusClientLayer
  • MetricsLayer

They are now provides more metrics and more detailed information. All their public API have been redesigned.

For more details, please refer to opendal::layers::observe's module documentation.

Operator::default_executor has been replaced by Operator::executor

In opendal v0.53, we introduced a new concept of Context which is used to store the context of the current operator. Thanks to this design, we can now get and set the executor and http_client for given Operator instead.

All services http_client API has been deprecated and replaced by Operator::update_http_client API.

OpenDAL MSRV bumped to 1.80

Since v0.53, OpenDAL will require Rust 1.80.0 or later to build.

Raw API

Operation enum merge

To reduce the complexity of the Operation, we have merged the duplicated Operation.

For example:

  • Operation::ReaderRead has been merged into Operation::Read
  • Operation::BlockingRead has been merged into Operation::Read

Upgrade to Nodejs Binding v0.48

Breaking change

Public API

Now, nodejs binding op.is_exist changed to op.exists to align with nodejs API style.

What's Changed

Added

Changed

  • refactor(!): Supabase is now an S3-compatible servcices by @Xuanwo in #5663
  • refactor: Migrate s3 services to context based http client by @Xuanwo in #5676
  • refactor: Migrate oss services to context based http client by @Ziy1-Tan in #5681
  • refactor: Migrate obs services to context based http client by @Ziy1-Tan in #5682
  • refactor: Migrate cos services to context based http client by @Ziy1-Tan in #5683
  • refactor(bindings/node)!: Change is_exist to exists to align with nodejs API style by @yihong0618 in #5731
  • refactor(services/redis): Implement ConnectionLike for RedisConnection by @Xuanwo in #5748
  • refactor!: Remove opendal-compat which is not maintained by @Xuanwo in #5754
  • refactor: Migrate github services to context based http client by @miroim in #5764
  • refactor(gcs): Migrate to context based http client by @leiysky in #5778
  • refactor(core/raw)!: Merge blocking and async operations by @Xuanwo in #5789
  • refactor(core/raw)!: Use AccessorInfo instead of seperate fields by @Xuanwo in #5796
  • refactor: Migrate aliyun_drive services to context based http client by @miroim in #5815
  • refactor: Migrate azfile services to context based http client by @miroim in #5816
  • refactor: Migrate dropbox services to context based http client by @miroim in #5827
  • refactor: Migrate upyun services to context based http client by @miroim in #5829
  • refactor(core): Migrate BlockWriter to use executor from context by @Xuanwo in #5834
  • refactor(core): Migrate MultipartWrite Executor to context based by @Xuanwo in #5835
  • refactor(core): Migrate PositionWrite Executor to context based by @Xuanwo in #5836
  • refactor(core)!: Migrate to context based executor by @Xuanwo in #5838
  • refactor: tidy binding java code by @tisonkun in #5840
  • refactor: Migrate yandex_disk services to context based http client by @miroim in #5841
  • refactor: Migrate alluxio services to context based http client by @miroim in #5842
  • refactor: Migrate b2 service to context based http client by @miroim in #5843
  • refactor: migrate azblob services to context based http client by @Ziy1-Tan in #5845
  • refactor: Migrate gdrive service to context based http client by @miroim in #5861
  • refactor: Migrate pcloud service to context based http client by @miroim in #5866
  • refactor!: Bump OpenDAL MSRV to 1.80 by @Xuanwo in #5868
  • refactor: Introduce VercelArtifactsCore for improved service structure by @miroim in #5873
  • refactor: Migrate vercel_artifacts service to context based http...
Read more

v0.52.0

24 Feb 06:57
v0.52.0
45e754b

Choose a tag to compare

Upgrade to v0.52

Public API

RFC-5556: Write Returns Metadata

Since v0.52, all write APIs in OpenDAL have been updated to return Metadata instead of (). This metadata includes useful information provided by the service, such as content-length, etag, version, and last-modified.

This feature is not fully ready yet, and many available metadata fields are still not returned. Please visit Tracking Issues of RFC-5556: Write Returns Metadata for progress and contributions.

Affected API:

  • opendal::Operator::write
  • opendal::Operator::write_with
  • opendal::Operator::writer::close
  • opendal::raw::oio::Write::close

Github Actions Cache (ghac) service v2

As requested by GitHub, we have upgraded our GHAC service to ensure compatibility with the latest GitHub Actions cache API.

By upgrading to OpenDAL v0.52, your services will continue functioning after the deprecation of the legacy service (2025/03/01). GHES does not yet support GHAC v2, but OpenDAL has handled this properly to prevent any disruptions.

ghac service doesn't support delete anymore, please use github's API to delete cache instead.

This upgrade is mandatory and enabled by default using an environment variable in the GitHub CI environment. No changes are required at the code level.

Breaking Changes in Dependencies

  • OtelTraceLayer and OtelMetricsLayer's dependence opentelemetry bumped to 0.28
  • PrometheusClientLayer's dependence prometheus-client bumped to 0.23.1

v0.52.0

Added

Changed

Fixed

  • fix(services/gcs): Fix content encoding can't be used alone by @Xuanwo in #5614
  • fix: ghac doesn't support delete anymore by @Xuanwo in #5628
  • fix(services/gdrive): skip the trailing slash when creating and querying the directory by @meteorgan in #5631

Docs

  • docs(bindings/ruby): add documentation for Ruby binding by @erickguan in #5629
  • docs: Add upgrade docs for upcoming 0.52 by @Xuanwo in #5634

CI

  • ci: Fix bad corepack cannot find matching keyid by @Xuanwo in #5603
  • ci(website): avoid including rc when calculate the latest version by @tisonkun in #5608
  • build: upgrade opentelemetry dependencies to 0.28.0 by @tisonkun in #5625
  • ci: Try fix nodejs CI by @Xuanwo in #5643
  • ci: Skip corepack checks until next nodejs version by @Xuanwo in #5644

Chore

  • chore(deps): bump uuid from 1.11.0 to 1.12.1 in /bin/oli by @dependabot in #5589
  • chore(deps): bump uuid from 1.11.0 to 1.12.1 in /core by @dependabot in #5588
  • chore(deps): bump log from 0.4.22 to 0.4.25 in /bin/oay by @dependabot in #5590
  • chore(deps): bump tempfile from 3.15.0 to 3.16.0 in /bin/ofs by @dependabot in #5586
  • chore(deps): update libtest-mimic requirement from 0.7.3 to 0.8.1 in /integrations/object_store by @dependabot in #5587
  • chore(layers/prometheus-client): upgrade prometheus-client dependency to v0.23.1 by @koushiro in #5576
  • chore(ci): remove benchmark report by @dqhl76 in #5626

New Contributors

Full Changelog: v0.51.2...v0.52.0

v0.51.2

07 Feb 01:26
v0.51.2
ca56238

Choose a tag to compare

What's Changed

Added

  • feat(core): implement if_modified_since and if_unmodified_since for stat_with by @meteorgan in #5528
  • feat(layer/otelmetrics): add OtelMetricsLayer by @andylokandy in #5524
  • feat(integrations/object_store): implement put_opts and get_opts by @meteorgan in #5513
  • feat: Conditional reader for azblob, gcs, oss by @geetanshjuneja in #5531
  • feat(core): Add correctness check for read with if_xxx headers by @Xuanwo in #5538
  • feat(services/cos): Added user metadata support for cos service by @geetanshjuneja in #5510
  • feat(core): Implement list with deleted and versions for oss by @hoslo in #5527
  • feat(layer/otelmetrics): take meter when register by @andylokandy in #5547
  • feat(gcs): Convert TOO_MANY_REQUESTS to retryable Ratelimited by @Xuanwo in #5551
  • feat(services/webdfs): Add user.name support for webhdfs by @Xuanwo in #5567
  • feat: disable backtrace for NotFound error by @xxchan in #5577

Changed

  • refactor: refactor some unnecessary clone and use next_back to make clippy happy by @yihong0618 in #5554
  • refactor: refactor all body.copy_to_bytes(body.remaining()) by @yihong0618 in #5561

Fixed

  • fix(integrations/object_store) object_store_opendal now compiles on wasm32-unknown-unknown by @XiangpengHao in #5530
  • fix(serivces/gcs): Gcs doesn't support read with if_(un)modified_since by @Xuanwo in #5537
  • fix(logging): remove additional space by @xxchan in #5568

Docs

  • docs: Fix opendal rust core's README not align with new vision by @Xuanwo in #5541
  • docs(integration/object_store): add example for datafusion by @meteorgan in #5543
  • docs: Add docs on how to pronounce opendal by @Xuanwo in #5552
  • docs(bindings/java): better javadoc by @tisonkun in #5572

CI

  • ci(integration/object_store): add integration tests for object_store_opendal by @meteorgan in #5536
  • ci: Pin the nightly version to rust 1.84 for fuzz by @Xuanwo in #5546
  • ci: skip running behavior tests when adding or modifying documentation by @meteorgan in #5558
  • build: fix Cargo.lock and pass --locked in CI by @xxchan in #5565
  • build: implement release process in odev by @tisonkun in #5592
  • ci: upgrade upload and download artifact actions by @tisonkun in #5598

Chore

New Contributors

Full Changelog: v0.51.1...v0.51.2

v0.51.1 - Look, a new day has begun

13 Jan 06:15
v0.51.1
90c64a1

Choose a tag to compare

This release's subtitle is "v0.51.1 - Look, a new day has begun".

Look, a new day has begun is the ending of Memory song.

It was written for the 1981 musical Cats, where it is sung primarily by the character Grizabella as a melancholic remembrance of her glamorous past and as a plea for acceptance. "Memory" is the climax of the musical and by far its best-known song, having achieved mainstream success outside of the musical.

I watched the live performance of Cats and was deeply moved. I hope every member of the OpenDAL community will also "understand what happiness is." The most important thing is that "a new day has begun." Let’s move forward and carry on.

Here are links to Memory, hoping you will love it too:


What's Changed

Added

  • feat(bin/oli): implement oli bench by @tisonkun in #5443
  • feat(dev): Add config parse and generate support by @Xuanwo in #5454
  • feat(bindings/python): generate python operator constructor types by @trim21 in #5457
  • feat(dev): Parse comments from config by @Xuanwo in #5467
  • feat(services/core): Implement stat_has_* and list_has_* correctly for services by @geetanshjuneja in #5472
  • feat: Add if-match & if-none-match support for reader by @XmchxUp in #5492
  • feat(core): Add is_current to metadata by @Wenbin1002 in #5493
  • feat(core): Implement list with deleted for s3 service by @Xuanwo in #5498
  • feat: generate java configs by @tisonkun in #5503
  • feat: Return hinted error for S3 wildcard if-none-match by @gruuya in #5506
  • feat(core): implement if_modified_since and if_unmodified_since for read_with and reader_with by @meteorgan in #5500
  • feat(core): Implement list with deleted and versions for cos by @hoslo in #5514

Changed

Fixed

  • fix: exception name in python by @trim21 in #5453
  • fix rust warning in python binding by @trim21 in #5459
  • fix: python binding kwargs parsing by @trim21 in #5458
  • fix(bindings/python): add py.typed marker file by @trim21 in #5464
  • fix(services/ghac): Fix stat_with_if_none_match been set in wrong by @Xuanwo in #5477
  • fix(ci): Correctly upgrade upload-artifact to v4 by @Xuanwo in #5484
  • fix(integration/object_store): object_store requires metadata in list by @Xuanwo in #5501
  • fix(services/s3): List with deleted should contain latest by @Xuanwo in #5518

Docs

  • docs: Fix links to vision by @Xuanwo in #5466
  • docs(golang): remove unused pkg by @fyqtian in #5473
  • docs(core): Polish API docs for Metadata by @Xuanwo in #5497
  • docs: Polish docs for Operator, Reader and Writer by @Xuanwo in #5516
  • docs: Reorganize docs for xxx_with for better reading by @Xuanwo in #5517

CI

Chore

  • chore(dev): Try just instead of xtasks methods by @Xuanwo in #5461
  • chore: pretty gen javadoc by @tisonkun in #5508
  • chore(ci): upgrade to manylinux_2_28 for aarch64 Python wheels by @messense in #5522

New Contributors

Full Changelog: v0.51.0...v0.51.1