Skip to content

Releases: apache/opendal

v0.18.2

01 Oct 12:25
v0.18.2
60cac6f
Compare
Choose a tag to compare

What's Changed

  • feat: Enable retry layer by default by @Xuanwo in #781
  • ci: Enable IPFS NoFecth to avoid networking timeout by @Xuanwo in #780
  • fix: Fix build error under release profile by @Xuanwo in #782
  • ci: Build all feature in release to prevent build failure under release profile by @Xuanwo in #783
  • Bump to version 0.18.2 by @Xuanwo in #784

Full Changelog: v0.18.1...v0.18.2

v0.18.1

01 Oct 07:05
v0.18.1
2b2f063
Compare
Choose a tag to compare

What's Changed

  • docs: Fix wrong link to object_store by @Xuanwo in #773
  • fix(services/s3): Content MD5 not set during list by @Xuanwo in #775
  • test: Add a test for ObjectEntry metadata cache by @Xuanwo in #776
  • Bump to version 0.18.1 by @Xuanwo in #777

Full Changelog: v0.18.0...v0.18.1

v0.18.0

01 Oct 05:20
v0.18.0
d4b2763
Compare
Choose a tag to compare

Upgrade to v0.18

OpenDAL v0.18 introduces the following breaking changes:

  • Deprecated feature flag services-http has been removed.
  • All DirXxx items have been renamed to ObjectXxx to make them more consistent.
    • DirEntry -> ObjectEntry
    • DirStream -> ObjectStream
    • DirStreamer -> ObjectStream
    • DirIterate -> ObjectIterate
    • DirIterator -> ObjectIterator

Besides, we also make a big change to our ObjectEntry API. Since v0.18, we can fully reuse the metadata that fetched during list. Take entry.content_length() for example:

  • If content_lenght is already known, we will return directly.
  • If not, we will check if the object entry is complete:
    • If complete, the entry already fetched all metadata that it could have, return directly.
    • If not, we will send a stat call to get the metadata and refresh our cache.

This change means:

  • All API like content_length will be changed into async functions.
  • metadata and blocking_metadata will not return errors anymore.
  • To retrieve the latest meta, please use entry.into_object().metadata() instead.

What's Changed

  • fix(http_util): Disable auto compress and enable http proxy by @Xuanwo in #731
  • refactor: replace error::other with new_other_object_error by @STRRL in #738
  • feat: Add Metadata Cache Layer by @Xuanwo in #739
  • feat: Bump reqsign version to 0.5 by @ClSlaid in #741
  • docs: Add comparison with object_store by @Xuanwo in #745
  • docs: Add docs for list with prefix by @Xuanwo in #746
  • feat: Derive Hash, Eq, PartialEq for Operation by @Xuanwo in #749
  • feat: Make AccessorMetadata public so outer users can use by @Xuanwo in #750
  • feat: Expose AccessorCapability to users by @Xuanwo in #751
  • chore(compress): log with trace level instead of debug. by @youngsofun in #752
  • feat: Expose opendal's http util to users by @Xuanwo in #753
  • feat: Implement convert from PresignedRequest by @Xuanwo in #756
  • feat: Make ObjectMetadata setter public by @Xuanwo in #758
  • refactor: Rename DirXxxx to ObjectXxxx instead by @Xuanwo in #759
  • docs: rename dir entry to object entry by @PsiACE in #760
  • feat: Implement cached metadata for ObjectEntry by @Xuanwo in #761
  • deps: Fix build after bump deps of oli and oay by @Xuanwo in #766
  • feat: Assign unique name for memory backend by @Xuanwo in #769
  • Bump to version 0.18.0 by @Xuanwo in #768

New Contributors

Full Changelog: v0.17.4...v0.18.0

v0.17.4

27 Sep 08:04
v0.17.4
3c16e44
Compare
Choose a tag to compare

What's Changed

  • fix(http_util): Allow retry more errors by @Xuanwo in #724
  • fix(services/ftp): Suffix endpoints with default port by @ClSlaid in #726
  • Bump to version 0.17.4 by @Xuanwo in #727

Full Changelog: v0.17.3...v0.17.4

v0.17.3

26 Sep 11:17
v0.17.3
8451c67
Compare
Choose a tag to compare

What's Changed

  • feat: Add SubdirLayer to allowing switch directory by @Xuanwo in #718
  • fix: update metrics on result by @ClSlaid in #716
  • fix: SubdirLayer should handle dir correctly by @Xuanwo in #720
  • feat(layers/retry): Add warning log while retry happened by @Xuanwo in #721
  • Bump to version 0.17.3 by @Xuanwo in #722

Full Changelog: v0.17.2...v0.17.3

v0.17.2

26 Sep 05:23
ae3b300
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.17.1...v0.17.2

v0.17.1

19 Sep 01:43
v0.17.1
ae62297
Compare
Choose a tag to compare

What's Changed

  • feat: redis service implement by @ClSlaid in #679
  • feat: Implement AsyncBufRead for IntoReader by @Xuanwo in #690
  • refactor: avoid unnecessary parent creating in Redis service by @ClSlaid in #692
  • feat: expose security token of s3 by @ClSlaid in #693
  • fix: Handle write data in async way for IPMFS by @xprazak2 in #694
  • refactor: Refactor HTTP Client to split sending and incoming logic by @Xuanwo in #695
  • ci: Try make ipfs test stable by @Xuanwo in #696
  • Bump to version 0.17.1 by @Xuanwo in #698

Full Changelog: v0.17.0...v0.17.1

v0.17.0

15 Sep 04:44
v0.17.0
36ebc48
Compare
Choose a tag to compare

Upgrade to v0.17

OpenDAL v0.17 refactor the Accessor to make space for future features.

We move path String out of the OpXxx to function args so that we don't need to clone twice.

- async fn read(&self, args: OpRead) -> Result<BytesReader>
+ async fn read(&self, path: &str, args: OpRead) -> Result<BytesReader>

For more information about this change, please refer to RFC-0661: Path In Accessor.

And since OpenDAL v0.17, we will use rustls as default tls engine for our underlying http client. Since this release, we will not depend on openssl anymore.


What's Changed

  • RFC: Path In Accessor by @Xuanwo in #661
  • feat: Implement RFC-0661: Path In Accessor by @Xuanwo in #664
  • docs: Add how to implement service docs by @Xuanwo in #665
  • fix: Immutable Index Layer could return duplicated pathes by @Xuanwo in #671
  • feat: Hide http client internal details from users by @Xuanwo in #672
  • feat: make rustls the default tls implementation by @sunng87 in #674
  • fix: Remove not needed type parameter for immutable_layer by @Xuanwo in #677
  • refactor: update redis support rfc by @ClSlaid in #676
  • feat: Implement benches for layers by @Xuanwo in #681
  • fix: Don't trace buf field in poll_read by @Xuanwo in #682
  • docs: update metrics documentation by @ClSlaid in #684
  • fix: List non-exist dir should return empty by @Xuanwo in #683
  • fix: Add path validation for fs backend by @Xuanwo in #685
  • Bump to version 0.17 by @Xuanwo in #686

Full Changelog: v0.16.0...v0.17.0

v0.16.0

12 Sep 06:20
v0.16.0
be95130
Compare
Choose a tag to compare

Upgrade to v0.16

OpenDAL v0.16 refactor the internal implementation of http service. Since v0.16, http service can be used directly without enabling services-http feature. Accompany by these changes, http service has the following breaking changes:

  • services-http feature has been deprecated. Enabling services-http is a no-op now.
  • http service is read only services and can't be used to list or write.

OpenDAL introduces a new layer ImmutableIndexLayer that can add list capability for services:

use opendal::layers::ImmutableIndexLayer;
use opendal::Operator;
use opendal::Scheme;

async fn main() {
    let mut iil = ImmutableIndexLayer::default();

    for i in ["file", "dir/", "dir/file", "dir_without_prefix/file"] {
        iil.insert(i.to_string())
    }

    let op = Operator::from_env(Scheme::Http)?.layer(iil);
}

For more information about this change, please refer to RFC-0627: Split Capabilities.


What's Changed

New Contributors

Full Changelog: v0.15.0...v0.16.0

v0.15.0

05 Sep 03:59
v0.15.0
65c2564
Compare
Choose a tag to compare

What's Changed

  • ci: Add alias domains support by @Xuanwo in #600
  • RFC-0599: Blocking API by @Xuanwo in #599
  • feat: Add blocking API in Accessor by @Xuanwo in #604
  • feat: Implement blocking API for fs by @Xuanwo in #606
  • feat: improve observability of BytesReader and DirStreamer by @ClSlaid in #603
  • feat: Add behavior tests for blocking operations by @Xuanwo in #607
  • feat: Implement blocking operations for layers by @Xuanwo in #608
  • deps: Bump versions of oay and oli deps by @Xuanwo in #617
  • feat: Add integration tests for ipfs by @Xuanwo in #610
  • docs: Add detailed docs for ipfs by @Xuanwo in #618
  • refactor: Extrace normalize_root functions by @Xuanwo in #619
  • refactor: Extrace build_abs_path and build_rooted_abs_path by @Xuanwo in #620
  • refactor: Extract build_rel_path by @Xuanwo in #621
  • feat: implemented ftp backend by @ArberSephirotheca in #581
  • RFC-0627: Split Capabilities by @Xuanwo in #627
  • feat: Rename ipfs to ipmfs to better reflect its naming by @Xuanwo in #629

New Contributors

Full Changelog: v0.14.1...v0.15.0