github apache/opendal v0.49.0

latest releases: v0.50.2, v0.50.2-rc.1, draft-v0.50.2...
2 months ago

Release List

Name Next
core 0.49.0
integrations/dav-server 0.0.7
integrations/fuse3 0.0.4
integrations/object_store 0.46.0
integrations/parquet 0.1.0
integrations/unftp-sbe 0.0.4
bin/oay 0.41.8
bin/ofs 0.0.9
bin/oli 0.41.8
bindings/c 0.44.10
bindings/cpp 0.45.8
bindings/dotnet 0.1.6
bindings/go 0.1.0
bindings/haskell 0.44.8
bindings/java 0.47.0
bindings/lua 0.1.6
bindings/nodejs 0.47.2
bindings/php 0.1.6
bindings/python (*) 0.45.8
bindings/ruby 0.1.6
  • (*): We expected to release Python 0.45.8, but due to #5000, we were unable to. We will release it next time.

OpenDAL Core Upgrade to v0.49

Public API

Configurator now returns associated builder instead

Configurator used to return impl Builder, but now it returns associated builder type directly. This will allow users to use the builder in a more flexible way.

impl Configurator for MemoryConfig {
-    fn into_builder(self) -> impl Builder {
+    type Builder = MemoryBuilder;
+    fn into_builder(self) -> Self::Builder {
        MemoryBuilder { config: self }
    }
}

LoggingLayer now accepts LoggingInterceptor

LoggingLayer now accepts LoggingInterceptor trait instead of configuration. This change will allow users to customize the logging behavior more flexibly.

pub trait LoggingInterceptor: Debug + Clone + Send + Sync + Unpin + 'static {
    fn log(
        &self,
        info: &AccessorInfo,
        operation: Operation,
        context: &[(&str, &str)],
        message: &str,
        err: Option<&Error>,
    );
}

Users can now implement the log in the way they want.

OpenDAL Java Binding Upgrade to v0.47

Breaking change

artifactId of the opendal-java has changed from to opendal to align with the convention of entire OpenDAL project.

<dependencies>
<dependency>
  <groupId>org.apache.opendal</groupId>
-  <artifactId>opendal-java</artifactId>
+  <artifactId>opendal</artifactId>
  <version>${opendal.version}</version>
</dependency>
<dependency>
  <groupId>org.apache.opendal</groupId>
-  <artifactId>opendal-java</artifactId>
+  <artifactId>opendal</artifactId>
  <version>${opendal.version}</version>
  <classifier>${os.detected.classifier}</classifier>
</dependency>
</dependencies>

What's Changed

Added

  • feat(o): Add cargo-o layout by @Xuanwo in #4934
  • feat: impl put_multipart in object_store by @Rachelint in #4793
  • feat: introduce opendal AsyncWriter for parquet integrations by @WenyXu in #4958
  • feat(services/http): implement presigned request for backends without authorization by @NickCao in #4970
  • feat(bindings/python): strip the library for minimum file size by @NickCao in #4971
  • feat(gcs): allow unauthenticated requests by @jdockerty in #4965
  • feat: introduce opendal AsyncReader for parquet integrations by @WenyXu in #4972
  • feat(services/s3): add role_session_name in assume roles by @nerdroychan in #4981
  • feat: support root path for moka and mini-moka by @meteorgan in #4984
  • feat(ovfs): export VirtioFs struct by @zjregee in #4983
  • feat(core)!: implement an interceptor for the logging layer by @evenyag in #4961
  • feat(ovfs): support getattr and setattr by @zjregee in #4987

Changed

  • refactor(java)!: Rename artifacts id opendal-java to opendal by @Xuanwo in #4957
  • refactor(core)!: Return associated builder instead by @Xuanwo in #4968
  • refactor(raw): Merge all operations into one enum by @Xuanwo in #4977
  • refactor(core): Use kv based context to avoid allocations by @Xuanwo in #4986

Fixed

Docs

  • docs: nominate-committer add announcement template by @tisonkun in #4954

CI

Chore

New Contributors

Full Changelog: v0.48.0...v0.49.0

Don't miss a new opendal release

NewReleases is sending notifications on new releases.