github apache/opendal v0.24.0

latest releases: v0.50.0, bindings/go/v0.1.3, bindings/go/v0.1.3-rc.2...
20 months ago

Upgrade to v0.24

In v0.24, we made a big refactor on our internal IO-related traits. In this version, we split our IO traits into input and output versions:

Take Reader as an example:

input::Reader is the user input reader, which only requires futures::AsyncRead + Send.

output::Reader is the reader returned by OpenDAL, which implements futures::AsyncRead, futures::AsyncSeek, and futures::Stream<Item=io::Result<Bytes>>. Besides, output::Reader also implements Send + Sync, which makes it useful for users.

Due to this change, all code that depends on BytesReader should be refactored.

  • BytesReader => input::Reader
  • OutputBytesReader => output::Reader

Thanks to the change of IO trait split, we make ObjectReader implements all needed traits:

  • futures::AsyncRead
  • futures::AsyncSeek
  • futures::Stream<Item=io::Result<Bytes>>

Thus, we removed the seekable_reader API. They can be replaced by range_reader:

  • o.seekable_reader => o.range_reader

Most changes only happen inside. Users not using opendal::raw::* will not be affected.

Sorry for the inconvenience. I think those changes are required and make OpenDAL better! Welcome any comments at Discussion.


What's Changed

  • ci: Fix build for oay and oli by @Xuanwo in #1097
  • fix: Fix rustls support for suppaftp by @Xuanwo in #1102
  • chore(deps): update quick-xml requirement from 0.26 to 0.27 by @dependabot in #1101
  • feat: Split bytes reader into input and output by @Xuanwo in #1106
  • ci: Enable rust cache for CI by @Xuanwo in #1107
  • deps(oay,oli): Update dependences of oay and oli by @Xuanwo in #1122
  • refactor: Only add content length hint if we already know length by @Xuanwo in #1123
  • Add support for SAS tokens in Azure blob storage by @agocke in #1124
  • feat: Add github action cache service support by @Xuanwo in #1111
  • fix(services/ghac): Fix pkg version not used correctly by @Xuanwo in #1125
  • docs: Add docs for ghac service by @Xuanwo in #1126
  • refactor: Redesign outpu bytes reader trait by @Xuanwo in #1127
  • refactor: Remove open related APIs by @Xuanwo in #1129
  • feat: Implement offset seekable reader for zero cost read by @Xuanwo in #1133
  • refactor: Merge and cleanup io & io_util modules by @Xuanwo in #1136
  • feat: Implement fuzz test on ObjectReader by @Xuanwo in #1140
  • Bump to version 0.24 by @Xuanwo in #1142

New Contributors

Full Changelog: v0.23.0...v0.24.0

Don't miss a new opendal release

NewReleases is sending notifications on new releases.