OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way.
Standard Storage Protocols (like ftp, webdav)
Object Storage Services (like s3, gcs, azblob)
File Storage Services (like fs, azdls, hdfs)
Consumer Cloud Storage Service (like gdrive, onedrive)
Key-Value Storage Service (like rocksdb, sled)
Cache Storage Service (like memcached, moka)
Welcome to add any services that are not currently supported here.
Access data freely
Access data painlessly
Layers
Access data efficiently
```rust use opendal::Result; use opendal::layers::LoggingLayer; use opendal::services; use opendal::Operator;
async fn main() -> Result<()> { // Pick a builder and configure it. let mut builder = services::S3::default(); builder.bucket("test");
// Init an operator
let op = Operator::new(builder)?
// Init with logging layer enabled.
.layer(LoggingLayer::default())
.finish();
// Write data
op.write("hello.txt", "Hello, World!").await?;
// Read data
let bs = op.read("hello.txt").await?;
// Fetch metadata
let meta = op.stat("hello.txt").await?;
let mode = meta.mode();
let length = meta.content_length();
// Delete
op.delete("hello.txt").await?;
Ok(())
} ```
The examples are available at here.
Check out the CONTRIBUTING guide for more details on getting started with contributing to this project.
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0