docs: Reorganize README of core and whole project (#1676)

* docs: Reorganize README of core and whole project

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

* Remove project from core

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

---------

Signed-off-by: Xuanwo <github@xuanwo.io>
3 files changed
tree: cd81319de5836d2d2c258915ea133c501a1013ca
  1. .config/
  2. .devcontainer/
  3. .github/
  4. binaries/
  5. bindings/
  6. core/
  7. scripts/
  8. website/
  9. .asf.yaml
  10. .env.example
  11. .gitignore
  12. .taplo.toml
  13. .typos.toml
  14. Cargo.lock
  15. Cargo.toml
  16. CHANGELOG.md
  17. DISCLAIMER
  18. LICENSE
  19. licenserc.toml
  20. NOTICE
  21. README.md
  22. rust-toolchain.toml
  23. rustfmt.toml
  24. vercel.json
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::create(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