Apache OpenDAL: access data freely.
APACHE-2.0 License
Bot releases are hidden (Show)
Published by Xuanwo over 1 year ago
In v0.36, OpenDAL improving the xxx_with
API by allow it to be called in chain:
After this change, all xxx_with
alike call will be changed from
let bs = op.read_with(
"path/to/file",
OpRead::new()
.with_range(0..=1024)
.with_if_match("<etag>")
.with_if_none_match("<etag>")
.with_override_cache_control("<cache_control>")
.with_override_content_disposition("<content_disposition>")
).await?;
to
let bs = op.read_with("path/to/file")
.range(0..=1024)
.if_match("<etag>")
.if_none_match("<etag>")
.override_cache_control("<cache_control>")
.override_content_disposition("<content_disposition>")
.await?;
For blocking API calls, we will need a call()
at the end:
let bs = bop.read_with("path/to/file")
.range(0..=1024)
.if_match("<etag>")
.if_none_match("<etag>")
.override_cache_control("<cache_control>")
.override_content_disposition("<content_disposition>")
.call()?;
Along with this change, users don't need to call OpXxx
anymore so we moved it to raw
API.
More detailes could be found at [RFC: Chain Based Operator API][https://opendal.apache.org/docs/rust/opendal/docs/rfcs/rfc_2299_chain_based_operator_api/index.html].
Migrated opendal::ops
to opendal::raw::ops
.
ops
to raw::ops
(#2325)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.35.0...v0.36.0
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release.
Operator::from_env
and Operator::from_iter
APIs
Operator::via_map
instead.append
support with could break existing layers. Please make sure append
requests have been forward correctly.scan
and list
, OpenDAL removes the scan
from raw API. Please use list_without_delimiter
instead.list
, create_dir
, stat
and uploadabi3
to avoid building on different pythonappend
(#2260)scan
from raw API (#2262)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.34.0...v0.35.0
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are waiting for the vote.
"
(#2226)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.33.3...v0.34.0
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are waiting for the vote.
read_with_override_cache_control
(#2155)Contributing
and add Developing
(#2169)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.33.2...v0.33.3
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
stat_with_if_none_match
(#2122)cache-control
to Metadata (#2136)write_with_cache_control
(#2131)write_with_content_type
(#2140)read_with_if_none_match
(#2141)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.33.1...v0.33.2
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
PreconditionFailed
to ConditionNotMatch
(#2104)start-after
support for list (#2096)content length=0
for gcs initiate_resumable_upload (#2110)package.json
repository info (#2078)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.33.0...v0.33.1
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
OpenDAL 0.33 has redesigned the Writer
API, replacing all instances of writer.append()
with writer.write()
. For more information, please refer to Writer
.
In addition to the redesign of the Writer
API, we have removed append
from oio::Write
. Therefore, users who implement services and layers should also remove it.
After v0.33 landing, services should handle OpWrite::content_length
correctly by following these guidelines:
NotSupported
if content length is None
.close
or abort
has been called.Furthermore, OpenDAL 0.33 introduces a new concept called Capability
which replaces AccessorCapability
. Services must adapt to this change.
start-after
support for list (#2071)--provenance
(#2046)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.32.0...v0.33.0
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
OpenDAL 0.32 doesn't have much breaking changes.
We changed Accessor::create
into Accessor::create_dir
. Only users who implement Layer
need to change.
Create
to CreateDir
for its behavior changed (#2019)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.31.1...v0.32.0
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.31.0...v0.31.1
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
In version v0.31 of OpenDAL, we made some internal refactoring to improve its compatibility with the ecosystem.
We increased the MSRV to 1.64 from v0.31 onwards. Although it is still possible to build OpenDAL under older rustc versions, we cannot guarantee that any issues related to them will be fixed.
std::time::Duration
insteadPreviously, OpenDAL accepted time::Duration
as input for presign_xxx
. However, since v0.31, we have changed this to accept std::time::Duration
so that users do not need to depend on time
. Internally, we migrated from time
to chrono
for better integration with other parts of the ecosystem.
disable_ec2_metadata
for services s3We have added a new configuration option called disable_ec2_metadata
for the S3 service in response to a mistake where it was mixed up with another option called disable_config_load
. Users who want to disable loading credentials from EC2 metadata should set this option instead.
Starting from v0.31, all services in OpenDAL are split into different feature flags. To enable only S3 support, use the following TOML configuration:
opendal = {
version = "0.31",
default-features = false,
features = ["services-s3"]
}
copy
and rename
(#1866)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.30.5...v0.31.0
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
oli rm
(#1774)oli stat
(#1778)oli cp -r
(#1787)Operator::scan
and Operator::remove_all
(#1779)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.30.4...v0.30.5
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.30.3...v0.30.4
Published by Xuanwo over 1 year ago
NOTE: This release is not yet an official ASF release. We are still in the process of learning how to create a formal one.
index.d.ts
(#1664)__repr__
to Operator
and AsyncOperator
(#1683)pyo3/entension-module
feature when building with maturin (#1680)Full Changelog: https://github.com/apache/incubator-opendal/compare/v0.30.2...v0.30.3
Published by Xuanwo over 1 year ago
Full Changelog: https://github.com/datafuselabs/opendal/compare/v0.30.1...v0.30.2
Published by Xuanwo over 1 year ago
Operator::create()
has been removed by @Xuanwo in https://github.com/datafuselabs/opendal/pull/1560
Full Changelog: https://github.com/datafuselabs/opendal/compare/v0.30.0...v0.30.1
Published by Xuanwo over 1 year ago
In version 0.30, we made significant breaking changes by removing objects. Our goal in doing so was to provide our users with APIs that are easier to understand and maintain.
More detailes could be found at [RFC: Remove Object Concept][crate::docs::rfcs::rfc_1477_remove_object_concept].
To upgrade to OpenDAL v0.30, users need to make the following changes:
object\((.*)\).reader\(\)
to reader($1)
ObjectMetakey
=> Metakey
ObjectMode
=> EntryMode
ErrorKind::ObjectXxx
to ErrorKind::Xxx
AccessorMetadata
=> AccessorInfo
ObjectMetadata
=> Metadata
operator.metadata()
=> operator.info()
create
to create_dir
by @suyanhanx in https://github.com/datafuselabs/opendal/pull/1512
Operator.writer
until we are ready by @suyanhanx in https://github.com/datafuselabs/opendal/pull/1528
Operator.create_dir
by @suyanhanx in https://github.com/datafuselabs/opendal/pull/1529
create_dir
by @messense in https://github.com/datafuselabs/opendal/pull/1534
delete
and export more metadata fields by @messense in https://github.com/datafuselabs/opendal/pull/1539
list
and scan
by @messense in https://github.com/datafuselabs/opendal/pull/1541
EntryMode
to Entry
by @suyanhanx in https://github.com/datafuselabs/opendal/pull/1543
Operator.scanSync
& Operator.listSync
by @suyanhanx in https://github.com/datafuselabs/opendal/pull/1546
Full Changelog: https://github.com/datafuselabs/opendal/compare/v0.29.1...v0.30.0
Published by Xuanwo over 1 year ago
Full Changelog: https://github.com/datafuselabs/opendal/compare/v0.29.0...v0.29.1
Published by Xuanwo over 1 year ago
In v0.29, we introduced [Object Writer][crate::docs::rfcs::rfc_1420_object_writer] to replace existing Multipart related APIs.
Users can now append multiparts bytes into object via:
let mut w = o.writer().await?;
w.write(bs1).await?;
w.write(bs2).await?;
w.close()
Along with this change, we cleaned up a lot of internal structs and traits. Users who used to depend on opendal::raw::io::{input,output}
should use opendal::raw::oio
instead.
Also, decompress related feature also removed. Users can use async-compression
with ObjectReader
directly.
io::input
and Rename io::output
to oio
by @Xuanwo in https://github.com/datafuselabs/opendal/pull/1446
Full Changelog: https://github.com/datafuselabs/opendal/compare/v0.28.0...v0.29.0
Published by Xuanwo over 1 year ago
In v0.28, we introduced Query Based Metadata. Users can query cached metadata with ObjectMetakey
to make sure that OpenDAL always makes the best decision.
- pub async fn metadata(&self) -> Result<ObjectMetadata>;
+ pub async fn metadata(
+ &self,
+ flags: impl Into<FlagSet<ObjectMetakey>>,
+ ) -> Result<Arc<ObjectMetadata>>;
Please visit Object::metadata()
's example for more details.
Full Changelog: https://github.com/datafuselabs/opendal/compare/v0.27.2...v0.28.0
Published by Xuanwo over 1 year ago
Full Changelog: https://github.com/datafuselabs/opendal/compare/v0.27.1...v0.27.2