ITADN
apache/opendal
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Apache OpenDAL™: 一层,所有存储。

GitHub Discussions Discord DeepWiki

Apache OpenDAL™(/ˈoʊ.pən.dæl/,发音为“OH-puhn-dal”)是一个开放数据访问层,为每种语言提供统一的方式访问对象存储、文件存储、云 SaaS、数据库、协议和键值服务。

Apache OpenDAL™ 由其愿景 One Layer, All Storage 及其核心原则指导:Open CommunitySolid FoundationFast AccessObject Storage FirstExtensible Architecture。在 OpenDAL Vision 阅读对愿景的阐述。

OpenDAL Architecture

概览

  • 项目:Apache OpenDAL™
  • 愿景:One Layer, All Storage
  • 核心包:Rust crate opendal
  • 主要抽象:Operator
  • 扩展点:语言绑定、层和服务
  • 常用层:重试、超时、日志、追踪、指标、限流和并发控制
  • 访问目标:对象存储、文件系统、云 SaaS、数据库、协议和键值服务

为什么选择 OpenDAL

Apache OpenDAL™ 将 One Layer, All Storage 的愿景转化为面向应用程序、库和数据系统的实用数据访问层。

  • 零成本核心:使用 Rust 构建,具备可组合的服务和层,因此应用程序只需启用其使用的后端和功能。
  • 生产就绪的访问:通过可复用的层添加重试、超时、日志、追踪、指标、限流和并发限制。
  • 一个 API,所有存储:通过相同的接口访问对象存储、文件系统、云 SaaS、数据库、协议和键值服务。
  • 开放且可扩展:在保持相同统一访问模型的同时,添加新的服务、层和语言绑定。

选择您的语言

从适用于您应用程序运行时的绑定开始。每个绑定都提供对相同 OpenDAL 服务模型的访问,同时遵循其语言生态系统。

注意:每个绑定都有自己独立的版本号,可能与 Rust 核心版本不同。在检查更新或兼容性时,始终参考特定绑定的版本,而非核心版本。

Rust logo
Rust Core
Package · Docs · Dev Docs
C logo
C Binding
Dev Docs
C++ logo
Cpp Binding
Dev Docs
D logo
D Binding
Dart logo
Dart Binding
.NET logo
Dotnet Binding
Go logo
Go Binding
Package · Docs
Haskell logo
Haskell Binding
Java logo
Java Binding
Package · Docs · Dev Docs
Lua logo
Lua Binding
Node.js logo
Node.js Binding
Package · Dev Docs
OCaml logo
OCaml Binding
PHP logo
PHP Binding
Python logo
Python Binding
Package · Dev Docs
Ruby logo
Ruby Binding
Package · Docs
Swift logo
Swift Binding
Zig logo
Zig Binding

选择您的层

当您的应用程序需要跨服务行为(如重试、超时、可观测性或流量控制)时,请添加层。

Retry icon
RetryLayer
重试临时故障。
Timeout icon
TimeoutLayer
限制缓慢或挂起的操作。
Logging icon
LoggingLayer
输出结构化操作日志。
Tracing icon
TracingLayer
跨系统追踪请求。
Metrics icon
MetricsLayer
导出操作指标。
Prometheus icon
PrometheusLayer
暴露 Prometheus 指标。
OpenTelemetry icon
OtelMetricsLayer
导出 OpenTelemetry 指标。
Traffic control icon
流量控制
ThrottleLayer · ConcurrentLimitLayer
Content type icon
MimeGuessLayer
从路径推断 Content-Type
Route icon
RouteLayer
按路径路由操作。
Cache icon
FoyerLayer
添加混合缓存行为。
Layers icon
所有层
探索完整的层列表。

layers documentation 中探索所有可用的层。

选择您的服务

选择您的应用程序所需的存储服务。请参阅 services documentation 中的完整 OpenDAL 服务配置文档。

对象存储文件存储
AWS logo s3Google Cloud logo gcsAzure logo azblobOpenDAL logo fsApache Hadoop logo hdfsApache Hadoop logo hdfs-native
Alibaba Cloud logo ossHuawei Cloud logo obsTencent Cloud logo cosApache Hadoop logo webhdfslakeFS logo lakefsIPFS logo ipfs
Volcengine logo tosBackblaze logo b2OpenStack logo swiftIPFS logo ipmfsAzure logo azfileAzure logo azdls
Upyun logo upyunVercel logo vercel-blobAlluxio logo alluxioTencent Cloud logo goosefsDatabricks logo dbfs
MongoDB logo gridfsMDN Web Docs logo opfsGitHub logo monoiofs
GitHub logo compfs
云 SaaS标准协议
Google Drive logo gdriveDropbox logo dropboxOneDrive logo onedriveHTTP icon httpFTP icon ftpWebDAV icon webdav
Aliyun Drive logo aliyun-driveHugging Face logo hfGitHub logo githubSFTP icon sftp
pCloud logo pcloudKoofr logo koofrSeafile logo seafile
Yandex Disk logo yandex-disk
数据库键值 & 嵌入式
SQLite logo sqliteMySQL logo mysqlPostgreSQL logo postgresqlOpenDAL logo memoryRedis logo redisetcd logo etcd
MongoDB logo mongodbSurrealDB logo surrealdbCloudflare logo d1RocksDB logo rocksdbMemcached logo memcachedcloudflare-kv
TiKV logo tikvFoundationDB logo foundationdbcrates.io logo sled
crates.io logo redbcrates.io logo persyGitHub logo dashmap
crates.io logo cacacheGitHub logo mokaGitHub logo mini-moka
GitHub logo foyerGitHub logo ghacvercel-artifacts

示例

参见 examples 以获取可运行的使用示例。

文档

贡献

OpenDAL 是一个活跃的开源项目。我们始终欢迎想要使用它或为其做出贡献的人。以下是一些参与方式。

品牌

任何个人使用(网页、传单、幻灯片等)中,首次且最显眼的提及必须使用名称的完整形式:Apache OpenDAL™。根据上下文和写作风格,您应足够频繁地使用名称的完整形式,以确保读者清楚地理解 OpenDAL 项目和 OpenDAL 软件产品与作为母组织的 ASF 之间的关联。

更多详情,请参阅 Apache 产品名称使用指南

许可证和商标

根据 Apache License, Version 2.0 授权: http://www.apache.org/licenses/LICENSE-2.0

Apache OpenDAL、OpenDAL 和 Apache 是 Apache Software Foundation 的注册商标或商标。