Open Data Access Layer: Access data freely, painlessly, and efficiently
- core: OpenDAL Rust Core
- binding-c: OpenDAL C Binding (working on)
- binding-java: OpenDAL Java Binding (working on)
- binding-nodejs: OpenDAL Node.js Binding
- Documentation: main
- binding-python: OpenDAL Python Binding
- Documentation: main
- binding-ruby: OpenDAL Ruby Binding (working on)
- bin
- oli: OpenDAL Command Line Interface
use opendal::Result;
use opendal::layers::LoggingLayer;
use opendal::services;
use opendal::Operator;
#[tokio::main]
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(())
}
import asyncio
async def main():
op = opendal.AsyncOperator("fs", root="/tmp")
await op.write("test.txt", b"Hello World")
print(await op.read("test.txt"))
asyncio.run(main())
import { Operator } from "opendal";
async function main() {
const op = new Operator("fs", { root: "/tmp" });
await op.write("test", "Hello, World!");
const bs = await op.read("test");
console.log(new TextDecoder().decode(bs));
const meta = await op.stat("test");
console.log(`contentLength: ${meta.contentLength}`);
}
- Databend: A modern Elasticity and Performance cloud data warehouse.
- GreptimeDB: An open-source, cloud-native, distributed time-series database.
- deepeth/mars: The powerful analysis platform to explore and visualize data from blockchain.
- mozilla/sccache: sccache is ccache with cloud storage
- risingwave: A Distributed SQL Database for Stream Processing
- Vector: A high-performance observability data pipeline.
Submit issues for bug report or asking questions in the Discussions forum.
Talk to develops at discord.
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0