Open Data Access Layer that connect the whole world together.
OpenDAL is in alpha stage and has been early adopted by databend. Welcome any feedback at Discussions!
```rust use anyhow::Result; use futures::AsyncReadExt;
use opendal::services::fs; use opendal::Operator;
async fn main() -> Result<()> { let op = Operator::new(fs::Backend::build().root("/tmp").finish().await?);
let o = op.object("test_file");
// Write data info file;
let w = o.new_writer();
let n = w
.write_bytes("Hello, World!".to_string().into_bytes())
.await?;
assert_eq!(n, 13);
// Read data from file;
let mut r = o.new_reader();
let mut buf = vec![];
let n = r.read_to_end(&mut buf).await?;
assert_eq!(n, 13);
assert_eq!(String::from_utf8_lossy(&buf), "Hello, World!");
// Get file's Metadata
let meta = o.stat().await?;
assert_eq!(meta.content_length(), 13);
// Delete file.
o.delete().await?;
Ok(())
} ```
OpenDAL is licensed under Apache 2.0.