apache/opendal
GitHub: apache/opendal
Apache OpenDAL 是一个开放数据访问层,旨在通过统一的 API 让应用程序能够无缝访问各类存储服务。
Stars: 5003 | Forks: 732
# Apache OpenDAL™:*One Layer, All Storage.*
[](https://github.com/apache/opendal/discussions)
[](https://opendal.apache.org/discord)
[](https://deepwiki.com/apache/opendal)
OpenDAL (`/ˈoʊ.pən.dæl/`, 发音为 "OH-puhn-dal") 是一个开放数据访问层,能够与各种存储服务进行无缝交互。
OpenDAL 的开发由 **One Layer, All Storage** 的愿景及其核心原则指导:**Open Community**(开放社区)、**Solid Foundation**(坚实基础)、**Fast Access**(快速访问)、**Object Storage First**(对象存储优先)和 **Extensible Architecture**(可扩展架构)。请阅读 [OpenDAL Vision](https://opendal.apache.org/vision) 了解愿景详情。
## 适用于 *ANY* 语言
| Name | Release | Docs | Used By |
| ----------------- | ------------------------------------------------ | --------------------------------------------------------------------------------- | ----------------------------------- |
| [Rust Core] | [![Rust Core Image]][Rust Core Link] | [![Docs Release]][Rust Core Release Docs] [![Docs Dev]][Rust Core Dev Docs] | [![Rust Core Users Image]][Rust Core Users] |
| [C Binding] | - | [![Docs Dev]][C Binding Dev Docs] | [![C Binding Users Image]][C Binding Users] |
| [Cpp Binding] | - | [![Docs Dev]][Cpp Binding Dev Docs] | - |
| [D Binding] | - | - | - |
| [Dart Binding] | - | - | - |
| [Dotnet Binding] | - | - | - |
| [Go Binding] | [![Go Binding Image]][Go Binding Link] | [![Docs Release]][Go Release Docs] | - |
| [Haskell Binding] | - | - | - |
| [Java Binding] | [![Java Binding Image]][Java Binding Link] | [![Docs Release]][Java Binding Release Docs] [![Docs Dev]][Java Binding Dev Docs] | [![Java Binding Users Image]][Java Binding Users] |
| [Lua Binding] | - | - | - |
| [Node.js Binding] | [![Node.js Binding Image]][Node.js Binding Link] | [![Docs Dev]][Node.js Binding Dev Docs] | - |
| [OCaml Binding] | - | - | - |
| [PHP Binding] | - | - | - |
| [Python Binding] | [![Python Binding Image]][Python Binding Link] | [![Docs Dev]][Python Binding Dev Docs] | [![Python Binding Users Image]][Python Binding Users] |
| [Ruby Binding] | - | - | - |
| [Swift Binding] | - | - | - |
| [Zig Binding] | - | - | - |
## 适用于 *ANY* 方法
| Name | Description | Release |
| ----- | ------------------------------------------------------------------ | ------------------------- |
| [oli] | 通过命令行访问数据(s3cmd, s3cli, azcopy 的替代方案) | [![oli image]][oli crate] |
| [ofs] | 通过 POSIX 文件系统 API 访问数据(s3fs 的替代方案) | [![ofs image]][ofs crate] |
## 适用于 *ANY* 集成
| Name | Description | Release | Docs |
| ---------------------- | ----------------------------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------- |
| [dav-server-opendalfs] | 使用 opendal 实现的 [dav-server-rs]。 | [![dav-server image]][dav-server crate] | [![Docs Release]][dav-server release docs] [![Docs Dev]][dav-server dev docs] |
| [object_store_opendal] | 使用 opendal 实现的 [object_store]。 | [![object_store image]][object_store crate] | [![Docs Release]][object_store release docs] [![Docs Dev]][object_store dev docs] |
| [unftp-sbe-opendal] | 使用 opendal 实现的 [unftp] 存储后端。 | [![unftp-sbe image]][unftp-sbe crate] | [![Docs Release]][unftp-sbe release docs] [![Docs Dev]][unftp-sbe dev docs] |
| [parquet_opendal] | 提供用于 [`parquet`](https://crates.io/crates/parquet) 的高效 IO 工具 | [![parquet image]][parquet crate] | [![Docs Release]][parquet release docs] [![Docs Dev]][parquet dev docs] |
## 适用于 *ANY* 服务
| Type | Services |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| Standard Storage Protocols | ftp http [sftp] [webdav] |
| Object Storage Services | [azblob] [cos] [gcs] [obs] [oss] [s3]
[b2] [openstack_swift] [upyun] [vercel-blob] | | File Storage Services | fs [alluxio] [azdls] [azfile] [compfs]
[dbfs] [gridfs] [hdfs] [hdfs-native] [ipfs] [webhdfs] | | Consumer Cloud Storage Service | [aliyun-drive] [gdrive] [onedrive] [dropbox] [koofr]
[pcloud] [seafile] [yandex-disk] | | Key-Value Storage Services | [cacache] [cloudflare-kv] [dashmap] memory [etcd]
[foundationdb] [persy] [redis] [rocksdb] [sled]
[redb] [tikv] | | Database Storage Services | [d1] [mongodb] [mysql] [postgresql] [sqlite] [surrealdb] | | Cache Storage Services | [ghac] [memcached] [mini-moka] [moka] [vercel-artifacts] | | Git Based Storage Services | [huggingface] | ## 示例 示例可在[此处](./examples/)查看。 ## 文档 文档可在 获取。
## 贡献
OpenDAL 是一个活跃的开源项目。我们随时欢迎想要使用或参与贡献的人。以下是一些参与方式。
- 从 [Contributing Guide](CONTRIBUTING.md) 开始。
- 提交 [Issues](https://github.com/apache/opendal/issues/new) 以报告错误或请求功能。
- 发起 [Discussions](https://github.com/apache/opendal/discussions/new?category=q-a) 进行提问或分享想法。
- 直接在 [Discord](https://opendal.apache.org/discord) 上与社区交流。
- 将安全漏洞报告至 [private mailing list](mailto:private@opendal.apache.org)
## 品牌使用
在任何个人使用场景(网页、讲义、幻灯片等)中,首次且最显著的提及必须使用全称:**Apache OpenDAL™**。根据上下文和写作风格,您应足够频繁地使用名称的全称,以确保读者清楚地了解 OpenDAL 项目和 OpenDAL 软件产品与作为其父组织的 ASF 之间的关联。
更多详情,请参阅 [Apache Product Name Usage Guide](https://www.apache.org/foundation/marks/guide)。
## 许可证和商标
根据 Apache License, Version 2.0 许可:
Apache OpenDAL、OpenDAL 和 Apache 是 Apache Software Foundation 的注册商标或商标。
## 适用于 *ANY* 语言
| Name | Release | Docs | Used By |
| ----------------- | ------------------------------------------------ | --------------------------------------------------------------------------------- | ----------------------------------- |
| [Rust Core] | [![Rust Core Image]][Rust Core Link] | [![Docs Release]][Rust Core Release Docs] [![Docs Dev]][Rust Core Dev Docs] | [![Rust Core Users Image]][Rust Core Users] |
| [C Binding] | - | [![Docs Dev]][C Binding Dev Docs] | [![C Binding Users Image]][C Binding Users] |
| [Cpp Binding] | - | [![Docs Dev]][Cpp Binding Dev Docs] | - |
| [D Binding] | - | - | - |
| [Dart Binding] | - | - | - |
| [Dotnet Binding] | - | - | - |
| [Go Binding] | [![Go Binding Image]][Go Binding Link] | [![Docs Release]][Go Release Docs] | - |
| [Haskell Binding] | - | - | - |
| [Java Binding] | [![Java Binding Image]][Java Binding Link] | [![Docs Release]][Java Binding Release Docs] [![Docs Dev]][Java Binding Dev Docs] | [![Java Binding Users Image]][Java Binding Users] |
| [Lua Binding] | - | - | - |
| [Node.js Binding] | [![Node.js Binding Image]][Node.js Binding Link] | [![Docs Dev]][Node.js Binding Dev Docs] | - |
| [OCaml Binding] | - | - | - |
| [PHP Binding] | - | - | - |
| [Python Binding] | [![Python Binding Image]][Python Binding Link] | [![Docs Dev]][Python Binding Dev Docs] | [![Python Binding Users Image]][Python Binding Users] |
| [Ruby Binding] | - | - | - |
| [Swift Binding] | - | - | - |
| [Zig Binding] | - | - | - |
## 适用于 *ANY* 方法
| Name | Description | Release |
| ----- | ------------------------------------------------------------------ | ------------------------- |
| [oli] | 通过命令行访问数据(s3cmd, s3cli, azcopy 的替代方案) | [![oli image]][oli crate] |
| [ofs] | 通过 POSIX 文件系统 API 访问数据(s3fs 的替代方案) | [![ofs image]][ofs crate] |
## 适用于 *ANY* 集成
| Name | Description | Release | Docs |
| ---------------------- | ----------------------------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------- |
| [dav-server-opendalfs] | 使用 opendal 实现的 [dav-server-rs]。 | [![dav-server image]][dav-server crate] | [![Docs Release]][dav-server release docs] [![Docs Dev]][dav-server dev docs] |
| [object_store_opendal] | 使用 opendal 实现的 [object_store]。 | [![object_store image]][object_store crate] | [![Docs Release]][object_store release docs] [![Docs Dev]][object_store dev docs] |
| [unftp-sbe-opendal] | 使用 opendal 实现的 [unftp] 存储后端。 | [![unftp-sbe image]][unftp-sbe crate] | [![Docs Release]][unftp-sbe release docs] [![Docs Dev]][unftp-sbe dev docs] |
| [parquet_opendal] | 提供用于 [`parquet`](https://crates.io/crates/parquet) 的高效 IO 工具 | [![parquet image]][parquet crate] | [![Docs Release]][parquet release docs] [![Docs Dev]][parquet dev docs] |
## 适用于 *ANY* 服务
| Type | Services |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| Standard Storage Protocols | ftp http [sftp] [webdav] |
| Object Storage Services | [azblob] [cos] [gcs] [obs] [oss] [s3] [b2] [openstack_swift] [upyun] [vercel-blob] | | File Storage Services | fs [alluxio] [azdls] [azfile] [compfs]
[dbfs] [gridfs] [hdfs] [hdfs-native] [ipfs] [webhdfs] | | Consumer Cloud Storage Service | [aliyun-drive] [gdrive] [onedrive] [dropbox] [koofr]
[pcloud] [seafile] [yandex-disk] | | Key-Value Storage Services | [cacache] [cloudflare-kv] [dashmap] memory [etcd]
[foundationdb] [persy] [redis] [rocksdb] [sled]
[redb] [tikv] | | Database Storage Services | [d1] [mongodb] [mysql] [postgresql] [sqlite] [surrealdb] | | Cache Storage Services | [ghac] [memcached] [mini-moka] [moka] [vercel-artifacts] | | Git Based Storage Services | [huggingface] | ## 示例 示例可在[此处](./examples/)查看。 ## 文档 文档可在
标签:Apache, Apache OpenDAL, Bing搜索, C Binding, Cpp Binding, D Binding, JS文件枚举, MITM代理, Rust, S3, 中间件, 云存储, 分布式存储, 可视化界面, 存储抽象, 对象存储, 开发库, 开源, 数据互操作性, 数据访问层, 文件系统, 日志审计, 统一存储, 网络流量审计, 跨语言, 逆向工具