Releases: apache/opendal
v0.15.0
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
andDirStreamer
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
- @ArberSephirotheca made their first contribution in #581
Full Changelog: v0.14.1...v0.15.0
v0.14.1
What's Changed
- docs: Add obs in OpenDAL lib docs by @Xuanwo in #585
- feat: Add IPFS backend by @xprazak2 in #481
- refactor: IPFS service cleanup by @Xuanwo in #590
- chore(deps): Update quick-xml requirement from 0.23 to 0.24 by @dependabot in #588
- fix(services/s3): If input range is
0..
, don't insert range header by @Xuanwo in #592 - Bump to version 0.14.1 by @Xuanwo in #593
Full Changelog: v0.14.0...v0.14.1
v0.14.0
Upgrade to v0.14
OpenDAL v0.14 removed all deprecated APIs in previous versions, including:
Operator::with_backoff
in v0.13- All services
Builder::finish()
in v0.12 - All services
Backend::build()
in v0.12
Please visit related version's upgrade guide for migration.
And in OpenDAL v0.14, we introduce a break change for write
operations.
pub trait Accessor {
- async fn write(&self, args: &OpWrite) -> Result<BytesWriter> {}
+ async fn write(&self, args: &OpWrite, r: BytesReader) -> Result<u64> {}
}
The following APIs have affected by this change:
Object::write
now acceptimpl Into<Vec<u8>>
instead ofAsRef<&[u8]>
Object::writer
has been removed.Object::write_from
has been added to support write from a reader.- All layers should be refactored to adapt new
Accessor
trait.
For more information about this change, please refer to RFC-0554: Write Refactor.
What's Changed
- refactor(ops): Promote ops as a parent mod by @Xuanwo in #553
- RFC-0554: Write Refactor by @Xuanwo in #554
- feat: Implement huaweicloud obs service other op support by @eastfisher in #557
- refactor: Implement RFC-0554 Write Refactor by @Xuanwo in #556
- refactor: Remove all unused qualifications by @eastfisher in #560
- feat: Add new operations in Accessor by @Xuanwo in #564
- feat: Implement obs create and write by @eastfisher in #565
- refactor: Fix typo in azblob backend by @eastfisher in #569
- RFC-0561: List metadata reuse by @ClSlaid in #561
- feat(services/s3): Implement Multipart support by @Xuanwo in #571
- feat: Implement MultipartObject public API by @Xuanwo in #574
- feat: Implement integration tests for multipart by @Xuanwo in #575
- feat: Implement presign for write multipart by @Xuanwo in #576
- test: Add assert of public struct size by @Xuanwo in #578
- feat: List metadata reuse by @ClSlaid in #577
- feat: Implement integration test for obs by @Xuanwo in #572
- refactor: change ObjectError's op from &'static str to Operation by @eastfisher in #580
- docs: Add docs for obs service by @eastfisher in #579
- refactor: Remove deprecated APIs by @Xuanwo in #582
- Bump to version 0.14 by @Xuanwo in #583
Full Changelog: v0.13.1...v0.14.0
v0.13.1
What's Changed
- chore: Crates.io doesn't allow keywords more than five by @Xuanwo in #539
- feat: Add walk for BatchOperator by @Xuanwo in #543
- feat: Mark Scheme non_exhaustive and extendable by @Xuanwo in #544
- feat: Try to limit the max_connections for http client by @Xuanwo in #545
- feat: Implement huaweicloud obs service read support by @eastfisher in #540
- docs: Fix gcs is missing from index by @Xuanwo in #546
- docs: Fix typo by @Xuanwo in #550
- Bump to version 0.13.1 by @Xuanwo in #551
New Contributors
- @eastfisher made their first contribution in #540
Full Changelog: v0.13.0...v0.13.1
v0.13.0
Upgrade to v0.13
OpenDAL deprecate Operator::with_backoff
since v0.13.
Please use RetryLayer
instead:
use anyhow::Result;
use backon::ExponentialBackoff;
use opendal::layers::RetryLayer;
use opendal::Operator;
use opendal::Scheme;
let _ = Operator::from_env(Scheme::Fs)
.expect("must init")
.layer(RetryLayer::new(ExponentialBackoff::default()));
What's Changed
- chore: Fix cargo publish by @Xuanwo in #520
- feat: Refactor metrics and hide under feature layers-metrics by @Xuanwo in #521
- refactor: Rewrite retry layer support by @Xuanwo in #522
- feat(layer): Add TracingLayer support by @Xuanwo in #523
- feature: Google Cloud Storage support skeleton by @ClSlaid in #513
- styles: Make xuanwo happy by @Xuanwo in #524
- feat: Add LoggingLayer to replace service internal logs by @Xuanwo in #526
- fix: Make ProtocolViolation a retryable error by @Xuanwo in #528
- feat: Implement integration tests for gcs by @Xuanwo in #532
- docs: Add docs for new layers by @Xuanwo in #534
- docs: Add docs for gcs backend by @ClSlaid in #535
- Bump to version 0.13 by @Xuanwo in #537
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Upgrade to v0.12
OpenDAL introduces breaking changes for services initiation.
Since v0.12, Operator::new
will accept impl Accessor + 'static
instead of Arc<dyn Accessor>
:
impl Operator {
pub fn new(accessor: impl Accessor + 'static) -> Self { .. }
}
Every service's Builder
now have a build()
API which can be run without async:
let mut builder = fs::Builder::default();
let op: Operator = Operator::new(builder.build()?);
Along with these changes, Operator::from_iter
and Operator::from_env
now is a blocking API too.
For more information about this change, please refer to RFC-0501: New Builder.
The following APIs have been deprecated:
- All services
Builder::finish()
(replaced byBuilder::build()
) - All services
Backend::build()
(replace byBuilder::default()
)
The following APIs have been removed:
- public struct
Metadata
(deprecated in v0.8, replaced byObjectMetadata
)
Visit Upgrade Notes for more information.
What's Changed
- chore(deps): Bump anyhow from 1.0.58 to 1.0.60 in /oay by @dependabot in #499
- chore(deps): Bump anyhow from 1.0.58 to 1.0.60 in /oli by @dependabot in #500
- RFC-0501: New Builder by @Xuanwo in #501
- refactor: Remove deprecated struct Metadata by @Xuanwo in #503
- feat: Use isahc to replace hyper by @Xuanwo in #471
- feat: Implement RFC-0501 New Builder by @Xuanwo in #510
- refactor: make parse http error code public by @ClSlaid in #511
- refactor: Extrace new http error APIs by @Xuanwo in #515
- refactor: Simplify the error response parse logic by @Xuanwo in #516
- Bump to version 0.12 by @Xuanwo in #518
New Contributors
Full Changelog: v0.11.4...v0.12.0
v0.11.4
What's Changed
- feat: try to support epoll by @PsiACE in #478
- chore: Fix oay and oli Cargo.lock not updated by @Xuanwo in #480
- docs: Add downloads in README by @Xuanwo in #485
- docs: Update slogan for OpenDAL by @Xuanwo in #486
- chore(deps): Bump clap from 3.2.15 to 3.2.16 in /oli by @dependabot in #488
- chore(deps): Bump clap from 3.2.15 to 3.2.16 in /oay by @dependabot in #487
- feat: Support using rustls for TLS by @sunng87 in #491
- fix: Uri encode continuation-token before signing by @Xuanwo in #494
- deps: Lower the requirement of deps by @Xuanwo in #495
- Revert "feat: try to support epoll" by @Xuanwo in #496
- Bump to version 0.11.4 by @Xuanwo in #497
New Contributors
Full Changelog: v0.11.3...v0.11.4
v0.11.3
v0.11.2
What's Changed
- chore(deps): Bump clap from 3.2.8 to 3.2.12 in /oli by @dependabot in #453
- fix: Service HTTP deosn't handle dir correctly by @Xuanwo in #455
- fix: Service HTTP inserted with wrong key by @Xuanwo in #457
- Bump to version 0.11.2 by @Xuanwo in #456
Full Changelog: v0.11.1...v0.11.2
v0.11.1
What's Changed
- RFC-0438: Multipart by @Xuanwo in #438
- RFC-0443: Gateway by @Xuanwo in #443
- feat: Add basic oay support for http by @Xuanwo in #445
- feat: BytesRange supports parsing from range and content-range by @Xuanwo in #449
- feat(oay): Implement range support by @Xuanwo in #450
- feat(services-http): Implement write and delete for testing by @Xuanwo in #451
- Bump to version 0.11.1 by @Xuanwo in #452
Full Changelog: v0.11.0...v0.11.1