Apache OpenDAL™: 一层,所有存储。
Apache OpenDAL™(/ˈoʊ.pən.dæl/,发音为“OH-puhn-dal”)是一个开放数据访问层,为每种语言提供统一的方式访问对象存储、文件存储、云 SaaS、数据库、协议和键值服务。
Apache OpenDAL™ 由其愿景 One Layer, All Storage 及其核心原则指导:Open Community、Solid Foundation、Fast Access、Object Storage First 和 Extensible Architecture。在 OpenDAL Vision 阅读对愿景的阐述。
概览
- 项目:Apache OpenDAL™
- 愿景:One Layer, All Storage
- 核心包:Rust crate
opendal - 主要抽象:
Operator - 扩展点:语言绑定、层和服务
- 常用层:重试、超时、日志、追踪、指标、限流和并发控制
- 访问目标:对象存储、文件系统、云 SaaS、数据库、协议和键值服务
为什么选择 OpenDAL
Apache OpenDAL™ 将 One Layer, All Storage 的愿景转化为面向应用程序、库和数据系统的实用数据访问层。
- 零成本核心:使用 Rust 构建,具备可组合的服务和层,因此应用程序只需启用其使用的后端和功能。
- 生产就绪的访问:通过可复用的层添加重试、超时、日志、追踪、指标、限流和并发限制。
- 一个 API,所有存储:通过相同的接口访问对象存储、文件系统、云 SaaS、数据库、协议和键值服务。
- 开放且可扩展:在保持相同统一访问模型的同时,添加新的服务、层和语言绑定。
选择您的语言
从适用于您应用程序运行时的绑定开始。每个绑定都提供对相同 OpenDAL 服务模型的访问,同时遵循其语言生态系统。
注意:每个绑定都有自己独立的版本号,可能与 Rust 核心版本不同。在检查更新或兼容性时,始终参考特定绑定的版本,而非核心版本。
选择您的层
当您的应用程序需要跨服务行为(如重试、超时、可观测性或流量控制)时,请添加层。
RetryLayer 重试临时故障。 | TimeoutLayer 限制缓慢或挂起的操作。 | LoggingLayer 输出结构化操作日志。 | TracingLayer 跨系统追踪请求。 |
MetricsLayer 导出操作指标。 | PrometheusLayer 暴露 Prometheus 指标。 | OtelMetricsLayer 导出 OpenTelemetry 指标。 | 流量控制 ThrottleLayer · ConcurrentLimitLayer |
MimeGuessLayer 从路径推断 Content-Type。 | RouteLayer 按路径路由操作。 | FoyerLayer 添加混合缓存行为。 | 所有层 探索完整的层列表。 |
在 layers documentation 中探索所有可用的层。
选择您的服务
选择您的应用程序所需的存储服务。请参阅 services documentation 中的完整 OpenDAL 服务配置文档。
| 对象存储 | 文件存储 | ||||
|---|---|---|---|---|---|
| 云 SaaS | 标准协议 | ||||
| 数据库 | 键值 & 嵌入式 | ||||
| cloudflare-kv | |||||
| vercel-artifacts | |||||
示例
参见 examples 以获取可运行的使用示例。
文档
- 网站: https://opendal.apache.org
- 愿景: https://opendal.apache.org/vision
- Rust 发布文档: https://docs.rs/opendal
- Rust 开发文档: https://opendal.apache.org/docs/rust/opendal/
贡献
OpenDAL 是一个活跃的开源项目。我们始终欢迎想要使用它或为其做出贡献的人。以下是一些参与方式。
- 从 贡献指南 开始。
- 提交 Issues 以报告 bug 或提出功能请求。
- 发起 Discussions 以提问或分享想法。
- 在 Discord 直接与社区交流。
- 向 私有邮件列表 报告安全漏洞
品牌
任何个人使用(网页、传单、幻灯片等)中,首次且最显眼的提及必须使用名称的完整形式: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 的注册商标或商标。