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