Release 0.33.1
Bump to version 0.33.1 (#2123)

* Bump to version 0.33.1

Signed-off-by: Xuanwo <github@xuanwo.io>

* Update

Signed-off-by: Xuanwo <github@xuanwo.io>

---------

Signed-off-by: Xuanwo <github@xuanwo.io>
Co-authored-by: Suyan <suyanhanx@gmail.com>
8 files changed
tree: c550e775f7538dadc0f5d43ed41dd090473c29db
  1. .config/
  2. .devcontainer/
  3. .github/
  4. bin/
  5. bindings/
  6. core/
  7. scripts/
  8. website/
  9. .asf.yaml
  10. .editorconfig
  11. .env.example
  12. .gitignore
  13. .taplo.toml
  14. .typos.toml
  15. Cargo.lock
  16. Cargo.toml
  17. CHANGELOG.md
  18. CITATION.cff
  19. CONTRIBUTING.md
  20. DISCLAIMER
  21. LICENSE
  22. licenserc.toml
  23. NOTICE
  24. odev
  25. README.md
  26. rust-toolchain.toml
  27. rustfmt.toml
README.md

OpenDAL   Build Status chat

Open Data Access Layer: Access data freely, painlessly, and efficiently

Components

Quickstart

Rust

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(())
}

Python

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())

Node.js

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}`);
}

Projects

  • 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.

Getting help

Submit issues for bug report or asking questions in the Discussions forum.

Talk to develops at discord.

License

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0