rustfs/rustfs

GitHub: rustfs/rustfs

一款基于 Rust 构建的高性能 S3 兼容分布式对象存储系统,针对数据湖和 AI 大数据场景优化,比 MinIO 更快且采用更宽松的 Apache 2.0 许可证。

Stars: 23146 | Forks: 983

[![RustFS](https://repository-images.githubusercontent.com/722597620/0fa936a2-8164-4f53-867f-def4beb64b21)](https://rustfs.com)

RustFS 是一个使用 Rust 构建的高性能分布式对象存储系统。

CI Build and Push Docker Images GitHub commit activity Github Last Commit Featured|HelloGitHub

rustfs%2Frustfs | Trendshift ROSS Index - Fastest Growing Open-Source Startups in Q4 2025 | Runa Capital

快速开始 · 文档 · Bug 报告 · 讨论

English | 简体中文 | Deutsch | Español | français | 日本語 | 한국어 | Portuguese | Русский

RustFS 是一个高性能的分布式对象存储系统,使用全球最受欢迎的编程语言之一 —— Rust 构建。RustFS 结合了 MinIO 的简洁性与 Rust 的内存安全和原生性能。它提供完整的 S3 兼容性,完全开源,并针对数据湖、AI 和大数据工作负载进行了优化。 与其他存储系统不同,RustFS 在宽松的 Apache 2.0 许可下发布,避免了 AGPL 的限制。以 Rust 为基础,RustFS 为下一代对象存储提供了卓越的速度和安全的分布式特性。 ## 功能与状态 - **高性能**:使用 Rust 构建,确保最大速度和资源效率。 - **分布式架构**:可扩展且容错的设计,适用于大规模部署。 - **S3 兼容性**:与现有的 S3 兼容应用程序和工具无缝集成。 - **OpenStack Swift API**:原生支持 Swift 协议和 Keystone 认证。 - **OpenStack Keystone 集成**:原生支持带有 X-Auth-Token 标头的 OpenStack Keystone 认证。 - **数据湖支持**:针对高吞吐量的大数据和 AI 工作负载进行了优化。 - **开源**:根据 Apache 2.0 授权,鼓励无限制的社区贡献和商业使用。 - **用户友好**:设计简洁,易于部署和管理。 | Feature | Status | Feature | Status | | :---------------------- | :----------- | :----------------------- | :--------------- | | **S3 核心功能** | ✅ 可用 | **Bitrot 保护** | ✅ 可用 | | **上传 / 下载** | ✅ 可用 | **单节点模式** | ✅ 可用 | | **版本控制** | ✅ 可用 | **Bucket 复制** | ✅ 可用 | | **日志** | ✅ 可用 | **生命周期管理** | 🚧 测试中 | | **事件通知** | ✅ 可用 | **分布式模式** | 🚧 测试中 | | **K8s Helm Charts** | ✅ 可用 | **RustFS KMS** | 🚧 测试中 | | **Keystone 认证** | ✅ 可用 | **多租户** | ✅ 可用 | | **Swift API** | ✅ 可用 | **Swift 元数据操作** | 🚧 部分支持 | ## RustFS 与 MinIO 性能对比 **压力测试环境:** | Type | Parameter | Remark | | ------- | --------- | -------------------------------------------------------- | | CPU | 2 核 | Intel Xeon (Sapphire Rapids) Platinum 8475B, 2.7/3.2 GHz | | Memory | 4GB | | | Network | 15Gbps | | | Drive | 40GB x 4 | IOPS 3800 / Drive | ### RustFS 与其他对象存储对比 | Feature | RustFS | Other Object Storage | | :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------- | | **控制台体验** | **强大的控制台**
全面的管理界面。 | **基础 / 有限的控制台**
通常过于简单或缺乏关键功能。 | | **语言与安全** | **基于 Rust**
设计上保证内存安全。 | **基于 Go 或 C**
可能出现内存 GC 暂停或泄漏。 | | **数据主权** | **无遥测 / 完全合规**
防止未经授权的跨境数据流出。符合 GDPR (欧盟/英国), CCPA (美国), 和 APPI (日本)。 | **潜在风险**
可能存在法律风险和不需要的数据遥测。 | | **许可** | **宽松的 Apache 2.0**
对商业友好,无“毒丸”条款。 | **限制性的 AGPL v3**
存在许可陷阱和知识产权污染的风险。 | | **兼容性** | **100% S3 兼容**
适用于任何云提供商或客户端。 | **兼容性参差不齐**
可能缺乏对本地云厂商或特定 API 的支持。 | | **边缘与物联网** | **强大的边缘支持**
非常适合安全、创新的边缘设备。 | **边缘支持薄弱**
对于边缘网关来说通常过于沉重。 | | **风险概况** | **企业风险缓解**
明确的知识产权归属,适合商业使用。 | **法律风险**
知识产权模糊和使用限制。 | ## 保持领先 ## 快速开始 要开始使用 RustFS,请按照以下步骤操作: ### 1. 一键安装 (选项 1) ``` curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh ``` ### 2\. Docker 快速开始 (选项 2) RustFS 容器以非 root 用户 `rustfs` (UID `10001`) 运行。如果您使用 `-v` 挂载主机目录来运行 Docker,请确保主机目录的所有者设置为 `10001`,否则您将遇到权限被拒绝的错误。 ``` # Create data and logs directories mkdir -p data logs # Change the owner of these directories chown -R 10001:10001 data logs # Using latest version docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest # Using specific version docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0-alpha.76 ``` 如果您使用 [podman](https://github.com/containers/podman) 而不是 docker,则可以使用以下命令安装 RustFS ``` podman run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest ``` 您也可以使用 Docker Compose。使用根目录下的 `docker-compose.yml` 文件: ``` docker compose --profile observability up -d ``` 同样,您可以使用 podman 运行该命令 ``` podman compose --profile observability up -d ``` **注意**:我们建议在运行前查看 `docker-compose.yaml` 文件。它定义了包括 Grafana、Prometheus 和 Jaeger 在内的多个服务,这些服务有助于 RustFS 的可观测性。如果您希望启动 Redis 或 Nginx 容器,可以指定相应的 profiles。 ### 3\. 从源码构建 (选项 3) - 高级用户 对于希望从源码构建具有多架构支持的 RustFS Docker 镜像的开发者: ``` # 在本地构建多架构镜像 ./docker-buildx.sh --build-arg RELEASE=latest # 构建并推送到 registry ./docker-buildx.sh --push # 构建特定版本 ./docker-buildx.sh --release v1.0.0 --push # 为自定义 registry 构建 ./docker-buildx.sh --registry your-registry.com --namespace yourname --push ``` `docker-buildx.sh` 脚本支持: - **多架构构建**:`linux/amd64`, `linux/arm64` - **自动版本检测**:使用 git 标签或 commit 哈希 - **Registry 灵活性**:支持 Docker Hub, GitHub Container Registry 等。 - **构建优化**:包括缓存和并行构建 为了方便起见,您也可以使用 Make 目标: ``` make docker-buildx # Build locally make docker-buildx-push # Build and push make docker-buildx-version VERSION=v1.0.0 # Build specific version make help-docker # Show all Docker-related commands ``` ### 4\. 使用 Helm Chart 构建 (选项 4) - 云原生 按照 [Helm Chart README](https://charts.rustfs.com/) 中的说明在 Kubernetes 集群上安装 RustFS。 ### 5\. Nix Flake (选项 5) 如果您已启用 [Nix with flakes](https://nixos.wiki/wiki/Flakes#Enable_flakes): ``` # 不安装直接运行 nix run github:rustfs/rustfs # 构建二进制文件 nix build github:rustfs/rustfs ./result/bin/rustfs --help # 或者从本地 checkout nix build nix run ``` ### 访问 RustFS 1. **访问控制台**:打开您的 Web 浏览器并导航到 `http://localhost:9001` 以访问 RustFS 控制台。 - 默认凭据:`rustfsadmin` / `rustfsadmin` 2. **创建 Bucket**:使用控制台为您的对象创建一个新的 bucket。 3. **上传对象**:您可以直接通过控制台上传文件,也可以使用 S3 兼容的 API/客户端与您的 RustFS 实例进行交互。 **注意**:要通过 `https` 访问 RustFS 实例,请参阅 [TLS 配置文档](https://docs.rustfs.com/integration/tls-configured.html)。 ## 文档 有关详细的文档,包括配置选项、API 参考和高级用法,请访问我们的[文档](https://docs.rustfs.com)。 ## 获取帮助 如果您有任何问题或需要协助: - 查看 [FAQ](https://github.com/rustfs/rustfs/discussions/categories/q-a) 以获取常见问题和解决方案。 - 加入我们的 [GitHub Discussions](https://github.com/rustfs/rustfs/discussions) 提问并分享您的经验。 - 在我们的 [GitHub Issues](https://github.com/rustfs/rustfs/issues) 页面上提交 Bug 报告或功能请求。 ## 链接 - [文档](https://docs.rustfs.com) - 您应该阅读的手册 - [更新日志](https://github.com/rustfs/rustfs/releases) - 我们破坏和修复的内容 - [GitHub Discussions](https://github.com/rustfs/rustfs/discussions) - 社区所在 ## 联系方式 - **Bugs**: [GitHub Issues](https://github.com/rustfs/rustfs/issues) - **商务**: [hello@rustfs.com](mailto:hello@rustfs.com) - **招聘**: [jobs@rustfs.com](mailto:jobs@rustfs.com) - **综合讨论**: [GitHub Discussions](https://github.com/rustfs/rustfs/discussions) - **贡献**: [CONTRIBUTING.md](CONTRIBUTING.md) ## Star 历史 [![Star History Chart](https://api.star-history.com/svg?repos=rustfs/rustfs&type=date&legend=top-left)](https://www.star-history.com/#rustfs/rustfs&type=date&legend=top-left) ## 许可证 [Apache 2.0](https://opensource.org/licenses/Apache-2.0) **RustFS** 是 RustFS, Inc. 的商标。所有其他商标均为其各自所有者的财产。
标签:Blob存储, Ceph, Docker, MinIO替代, Rust, Rust语言, S3兼容, Serverless, 低延迟, 分布式存储, 分布式系统, 可视化界面, 响应大小分析, 子域名突变, 存储系统, 安全防御评估, 对象存储, 开源, 数据迁移, 文件系统, 网络流量审计, 自定义请求头, 请求拦截, 通知系统, 高吞吐