Crate zarrs_opendal

Crate zarrs_opendal 

Source
Expand description

opendal store support for the zarrs crate.

use zarrs_storage::AsyncReadableStorage;
use zarrs_opendal::AsyncOpendalStore;

let builder = opendal::services::Http::default().endpoint("http://...");
let operator = opendal::Operator::new(builder)?.finish();
let store: AsyncReadableStorage = Arc::new(AsyncOpendalStore::new(operator));

§Version Compatibility Matrix

zarrs_opendalopendalzarrs (zarrs_storage)
0.90.54-0.540.22+ (0.4.x)
0.80.54-0.540.18-0.21 (0.3.x)
0.70.51-0.530.18-0.21 (0.3.x)
0.60.51-0.520.18-0.21 (0.3.x)
0.50.51-0.510.18-0.21 (0.3.x)
0.40.46-0.500.18-0.21 (0.3.x)
0.30.46-0.500.17 (0.2.x)

opendal is re-exported as a dependency of this crate, so it does not need to be specified as a direct dependency.

However, if opendal is a direct dependency, it is necessary to ensure that the version used by this crate is compatible. This crate can depend on a range of semver-incompatible versions of opendal, and Cargo will not automatically choose a single version of opendal that satisfies all dependencies. Use a precise cargo update to ensure compatibility. For example, if this crate resolves to opendal 0.50.2 and your code uses 0.49.2:

cargo update --package opendal:0.50.2 --precise 0.49.2

§Licence

zarrs_opendal is licensed under either of

Re-exports§

pub use opendal;

Structs§

AsyncOpendalStore
An asynchronous store backed by an opendal::Operator.