
RustFS
github.com/rustfs/rustfs- Category
- Developer Tools
- Rank
- No. 451Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- rustfs
- GitHub
- 31.1k stars
- Latest release
- 1.0.0-rc.2-preview.1
- Added
- Apr 15, 2026
About
A high-performance, distributed object storage system built in Rust that's S3-compatible and claims 2.3x faster performance than MinIO for 4KB object payloads. Designed for data lakes, AI workloads, and big data with Apache 2.0 licensing.
What it does
RustFS runs an object storage server that applications can address through supported S3 operations or the OpenStack Swift protocol. It handles uploads, downloads, versioning, replication, identity policies, encryption, notifications, integrity checks, and healing. Rust applications can also start one server inside their own process for integration testing.
Why it's ranked here
The engineering scope is substantial: storage, identity, encryption, observability, replication, healing, and protocol support are separated into focused Rust crates. The permissive license and several deployment options strengthen its practical appeal. The verdict remains cautious because distributed mode, lifecycle management, and key management are explicitly under testing, while Swift metadata support is partial.
What's good
The embedded server gives Rust integration tests a local S3 endpoint without containers or child processes. The container runs as a non-root user, and the documentation calls out mount ownership requirements instead of hiding them. Available capabilities include bitrot protection, versioning, bucket replication, event notifications, multi-tenancy, Swift access, and Keystone authentication. Observability covers logs, metrics, distributed tracing, and runtime telemetry.
Tradeoffs
Feature status is uneven. Distributed operation, lifecycle management, and key management remain under testing, while Swift metadata operations are only partial. S3 support covers supported features rather than every operation, so compatibility needs checking. The embedded server relies on process-wide state and permits only one instance per process. Container bind mounts require deliberate ownership and permission setup.
How to use it well
Use RustFS when an application needs self-hosted object storage behind familiar S3 clients, or when an OpenStack environment needs Swift with Keystone authentication. Start with single-node containers or the embedded Rust server for development and integration tests. Validate required operations against the compatibility matrix before migration. It supplies the storage endpoint, but applications still need an S3 or Swift client to consume it.
Technical notes+
Cargo.toml defines a large Rust workspace spanning the rustfs binary and focused crates for ecstore, IAM, KMS, replication, healing, notifications, observability, protocols, S3 operations, testing, and I/O. rustfs/src/main.rs delegates startup through rustfs::startup_entrypoint::run_process and uses mimalloc globally. rustfs/src/lib.rs exposes rustfs::embedded, documents the one-server-per-process singleton limitation, and conditionally exposes FTPS, WebDAV, and SFTP modules. crates/iam/src/lib.rs uses OnceLock-backed IAM and OIDC globals. crates/heal/src/lib.rs uses single-flight runtime initialization and cancellation tokens. crates/kms/src/lib.rs documents local, Vault KV2, and optional Vault Transit backends plus SSE-S3, SSE-KMS, and SSE-C. crates/obs/src/lib.rs exposes logging, metrics, tracing, and Tokio telemetry. crates/zip/src/lib.rs implements bounded archive extraction with path, entry-count, entry-size, and total-size limits.
Observed
- License
- Apache-2.0
- Primary language
- Rust
- Packaging and installation
- Install script, Docker, Docker Compose, Podman, Podman Compose, and Kubernetes Helm charts
- Storage interfaces
- Supported S3 API operations and the OpenStack Swift API
- Authentication interfaces
- OpenStack Keystone authentication and OIDC-backed identity support
- Library surface
- An embedded Rust server can provide an in-process S3 endpoint for integration tests
- Repository structure
- Cargo workspace with dedicated crates for storage, IAM, KMS, replication, healing, observability, protocols, and end-to-end tests
Read from README.md, Makefile, Cargo.toml, rustfs/src/lib.rs, rustfs/src/main.rs, crates/iam/src/lib.rs, crates/kms/src/lib.rs, crates/obs/src/lib.rs, crates/rio/src/lib.rs, crates/zip/src/lib.rs, rustfs/src/app/mod.rs, crates/heal/src/lib.rs.
What it can do
Store objects in distributed storage
Digital files and data objects → Stored objects with unique identifiers
Retrieve objects via S3-compatible API
Object identifier/key and bucket name → Requested object data
Create and manage storage buckets
Bucket configuration parameters → Storage buckets for object organization
Process high-volume data lake workloads
Large datasets and data streams → Stored and accessible data lake infrastructure
Handle AI workload data storage
Machine learning datasets and model files → Optimized storage for AI/ML workflows
Distribute data across multiple nodes
Objects and cluster configuration → Replicated data across distributed storage nodes
Tags
Tech Stack
Media
Comments (0)
No comments yet
Indexed by a proprietary survey. Corrections welcome.