Overview of the OpenDAL Design System
main--odl-*) to ensure theme-aware components and high performance through system fonts and CSS-only motion.repository·main·Indexed 26 days ago
https://github.com/apache/opendalA unified data access layer providing a consistent API for interacting with diverse storage backends, including object storage, file systems, and databases. It offers multi-language bindings for D, .NET, Go, Java, Node.js, and Python, allowing developers to use a single set of operations across different storage services.
--odl-*) to ensure theme-aware components and high performance through system fonts and CSS-only motion.Apache OpenDAL is a unified, simple, efficient, reliable, and observable data access layer. It allows developers to seamlessly use different storage services through a single interface without needing to master individual service SDKs.
Key features include:
read, write, and list.The .NET binding provides a unified API to access over 50 storage services (like S3, GCS, Azure Blob, and the local filesystem) using a high-performance Rust core.
Key features include:
Task-based ...Async counterpart with CancellationToken support.Stream wrappers: OpenReadStream and OpenWriteStream return standard .NET Stream objects.The Go binding provides a native interface to access various storage services (S3, GCS, Azure Blob, local filesystem, etc.) using the Rust core's performance. Key features include:
error. There are no async variants.io.ReadSeekCloser and io.WriteCloser.github.com/apache/opendal-go-services/<scheme> which must be imported alongside the main binding.*net/http.Request objects.The opendal Rust crate is the primary, most mature surface of the project. Key capabilities include:
The OpenDAL Java binding provides access to over 50 storage services (S3, GCS, Azure Blob, HDFS, local filesystem, etc.) with the following features:
Operator for blocking calls or AsyncOperator for CompletableFuture-based asynchronous calls.ServiceConfig builder or a plain Map<String, String>.Apache OpenDAL provides three primary modules for Spring integration:
opendal-spring: The core integration module for general Spring applications.opendal-spring-boot-starter: A synchronous starter designed for Spring WebMVC applications.opendal-spring-boot-starter-reactive: An asynchronous starter designed for Spring WebFlux applications.The Node.js binding provides several key features for interacting with storage services:
Promise that can be awaited.*Sync form (e.g., readSync, writeSync) for blocking code execution.Readable and Writable streams for handling data that exceeds available memory.The OpenDAL Python binding provides a native interface to access over 50 storage services (like S3, GCS, Azure Blob, HDFS, and the local filesystem) using a unified API with Rust-level performance.
Key features include:
Operator for synchronous operations or AsyncOperator for asynchronous operations using the same set of verbs.op.open(path, "rb") method returns objects that support standard read/write/seek operations for streaming.The OpenDAL Ruby binding provides a native interface to access over 50 storage services (like S3, GCS, Azure Blob, and the local filesystem) using a unified API.
Key features include:
scheme string during construction.IO: The op.open(path, "r") method returns an object supporting standard read, write, seek, and readline operations for streaming.s3 and webdav. It can convert any supported storage service into a WebDAV server.