14 KiB
created, id, keywords, links, modified, summary, tags, title
| created | id | keywords | links | modified | summary | tags | title | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-04-16T03:58:55+00:00 | c724b70a-3a92-4527-82a8-22a64533adee |
|
2026-04-16T03:58:55+00:00 | Comprehensive reference for RustFS, a high-performance distributed object storage system written in Rust. Covers architecture, installation, S3 compatibility, erasure coding, SDKs, management, and usage limits. |
|
RustFS — High-Performance Distributed Object Storage |
id: reference/rustfs title: "RustFS — High-Performance Distributed Object Storage" created: 2025-07-10 modified: 2025-07-10 tags:
- rustfs
- object-storage
- s3
- distributed-storage
- docker
- kubernetes
- rust
- devops
- reference keywords:
- RustFS
- object storage
- S3 compatible
- Rust
- erasure coding
- Reed-Solomon
- distributed storage
- docker
- kubernetes
- MinIO client
- mc
- AWS S3 SDK
- Apache 2.0
- Blake3
- Rayon
- AVX2
- WORM
- federation
- multi-cloud gateway
- SNSD
- SNMD
- MNMD links:
- "reference/docker-compose"
RustFS — High-Performance Distributed Object Storage
Official documentation: https://docs.rustfs.com License: Apache 2.0 (commercially friendly) Repository:
git@github.com:rustfs/rustfs.gitDocker image:rustfs/rustfs
RustFS is a high-performance, distributed object storage solution designed for simplicity and efficiency. Fully compatible with the S3 protocol, it is open-source software built with Rust — leveraging industry-leading memory safety and zero-cost abstractions to deliver exceptional performance comparable to C/C++.
It serves as a modern alternative to legacy object storage solutions, offering a robust platform for data-intensive applications.
Table of Contents
- Overview & Features
- Architecture
- Installation
- S3 Compatibility
- Erasure Coding
- Bare Metal & Virtualized Deployment
- Enterprise Features
- SDKs & Client Libraries
- MinIO Client (mc) Reference
- Usage Limits
- Platform & OS Support
- Documentation Map
- Related
Overview & Features
| Feature | Detail |
|---|---|
| S3 Compatible | Fully compatible with the S3 API (V2 and V4) |
| Distributed Architecture | Horizontal scaling, symmetric nodes |
| License | Apache v2.0 — commercially friendly |
| Language | Rust — memory safety, zero-cost abstractions |
| Performance | Comparable to C/C++ |
| Security | Rust memory safety guarantees, TLS, AES-256-GCM, KMS integration |
| Cross-Platform | Linux, macOS, Windows, FreeBSD, Docker, edge gateways |
| Extensible | Plugin architecture |
| Cloud-Native | Docker and Kubernetes optimized |
| Single Binary | ~100 MB static binary |
Vision: Provide the storage foundation for the AI era, enabling every personal AI agent to securely store and access data.
Architecture
RustFS uses a fully symmetric architecture — all servers are functionally equal. There are no name nodes or metadata servers. Data and metadata are written atomically. Key architectural characteristics:
- One process per node with lightweight coroutines for high concurrency.
- Erasure sets group drives (default: 16 drives/set) with deterministic hashing for object placement.
- Inline operations: erasure coding, bitrot checking, and encryption are strictly consistent — applied before the write acknowledgment is returned.
- Single-layer software-defined design running on industry-standard hardware (JBOD/JBOF commodity servers).
- Lightweight containers suitable for Kubernetes deployment.
- Multi-datacenter support: each tenant runs an isolated cluster; independent scaling via federation across geographies.
S3 Ports
| Port | Purpose |
|---|---|
9000 |
S3 API |
9001 |
Console UI |
Installation
Deployment Modes
RustFS supports three installation modes, each suited to different scales:
| Mode | Abbreviation | Use Case | Redundancy |
|---|---|---|---|
| Single Node, Single Disk | SNSD | Local testing, small-scale | None — zero erasure coding |
| Single Node, Multiple Disk | SNMD | Development, moderate workloads | Erasure coding across local disks |
| Multiple Node, Multiple Disk | MNMD | Enterprise-grade production | Full erasure coding + distributed redundancy |
Pre-installation checks are recommended. RustFS runs on almost any CPU/OS (x86, ARM).
Docker Quick Start
Prerequisites: Docker ≥ 20.10, port 9000 open.
docker pull rustfs/rustfs
docker run -d \
--name rustfs_local \
-p 9000:9000 \
-p 9001:9001 \
-v /mnt/rustfs/data:/data \
rustfs/rustfs:latest \
/data
The container runs as a non-root user rustfs (UID 10001).
Environment Variables
| Variable | Default | Description |
|---|---|---|
RUSTFS_ADDRESS |
:9000 |
S3 API bind address |
RUSTFS_SERVER_DOMAINS |
— | Server domain(s) |
RUSTFS_ACCESS_KEY |
rustfsadmin |
Access key |
RUSTFS_SECRET_KEY |
rustfsadmin |
Secret key |
RUSTFS_CONSOLE_ENABLE |
true |
Enable Console UI on port 9001 |
Command-line parameters are also supported and take higher priority than environment variables.
Docker Compose Deployment
For the full Docker Compose reference, see Docker Compose Deployment.
# Clone the repository
git clone git@github.com:rustfs/rustfs.git
# Start with observability stack (Grafana, Prometheus, Jaeger, OpenTelemetry Collector)
docker compose --profile observability up -d
# Start RustFS only (no observability)
docker compose -f docker-compose.yml up -d rustfs
The observability profile starts: rustfs-server, Grafana, Prometheus, Jaeger, and otel-collector.
Default Credentials
| Method | Username | Password |
|---|---|---|
| Environment variables | rustfsadmin |
rustfsadmin |
| Some documentation | rustfsadmin |
ChangeMe123! |
TLS Support
Mount certificates and set RUSTFS_TLS_PATH to enable TLS.
Production Recommendations
- Deploy multi-node for redundancy and performance.
- Enable TLS for all connections.
- Configure log rotation.
- Establish a backup strategy.
- Use local SSD/NVMe storage.
- Avoid NFS — use direct-attached storage.
S3 Compatibility
RustFS maintains strict adherence to S3 API standards, supporting API V2 and V4 with location-independent compatibility across:
- Public cloud
- Private cloud
- Data center
- Multi-cloud
- Hybrid cloud
- Edge deployments
Core S3 Features
- S3 Select: SIMD-optimized queries on CSV, Parquet, and JSON data.
- AWS Signature Version 4: Policy-based access control compatible with AWS IAM.
- Broad ecosystem support: GitHub/GitLab, MongoDB, ClickHouse, MariaDB, CockroachDB, Teradata, KubeFlow, TensorFlow.
Erasure Coding
RustFS uses Reed-Solomon (RS) Code based on finite field algebraic structures.
Key Parameters
| Parameter | Meaning |
|---|---|
| k | Original data shards |
| m | Parity shards |
| n | Total shards (k + m) |
Any k of n shards are sufficient to recover the original data. Recovery uses Gaussian elimination or FFT.
Example: RS(10, 4)
- Fault tolerance: 4 nodes
- Storage utilization: 71% (vs 33% for triple replication)
RustFS Implementation Details
| Component | Detail |
|---|---|
| Shard size | Dynamic, 64 KB – 4 MB |
| Hash checksum | Blake3 algorithm |
| Parallel encoding | Rayon framework + AVX2 SIMD instructions |
| Finite field | GF(2⁸) with generator polynomial 0x11D |
| Tiering | Runtime (k, m) adjustment for hot/warm/cold tiers |
| Max parity | N/2 |
Bare Metal & Virtualized Deployment
RustFS is software-defined, runs on industry-standard hardware, and requires no special storage appliances.
Key Capabilities
| Feature | Detail |
|---|---|
| Bitrot Protection | HighwayHash, READ/WRITE verification, >10 GB/s hash speed on single core |
| Server-Side Encryption | AES-256-GCM, ChaCha20-Poly1305, AES-CBC; AEAD encryption; KMS integration (HashiCorp Vault); SSE-S3 support |
| WORM | Write Once Read Many — disables all mutation APIs; for regulatory compliance |
| Identity Management | OpenID Connect, external IdP integration, temporary rotated passwords, fine-grained access policies |
| Continuous Replication | Lambda-based notifications for immediate change propagation; cross-datacenter, multi-vendor |
| Global Federation | Unified namespace across distributed mode sets; unlimited mode sets per federation; single console administration |
| Multi-Cloud Gateway | S3 API view regardless of data location; makes non-S3 storage appear S3-compatible |
Enterprise Features
- Object Lock & Read-Only: Compliance and governance modes.
- Cross-Region Replication: Active-active and active-passive.
- Version Control: Configurable version limits.
- Lifecycle Management: Automated tiering and expiration policies.
- Log Management: Structured logging with observability integration.
- Encryption: At-rest and in-transit with KMS support.
SDKs & Client Libraries
Management Interfaces
- Console UI — web-based (port 9001)
- MinIO Client (mc) — CLI tool
- SDKs — programmatic access
Available SDKs
| Language | Recommended SDK |
|---|---|
| Java | Official AWS S3 SDK for Java |
| JavaScript | Official AWS S3 SDK for JavaScript |
| Python | Official AWS S3 SDK for Python (boto3) |
| Rust | Official AWS S3 SDK for Rust |
| TypeScript | Official AWS S3 SDK for TypeScript |
| Golang | Official AWS S3 SDK for Go |
Recommendation: Use the official AWS S3 SDKs — they are mature, well-maintained, and highly optimized. RustFS is fully compatible. Fully compatible with MinIO SDKs as well (just change Endpoint, AK, SK). Avoid non-S3-compliant third-party SDKs.
MinIO Client (mc) Reference
Setup
mc alias set rustfs http://12.34.56.78:9000 ACCESS_KEY SECRET_KEY
Common Operations
mc ls rustfs # List buckets
mc mb rustfs/mybucket # Create bucket
mc rb rustfs/mybucket # Delete bucket
mc cp localfile.txt rustfs/mybucket # Upload object
mc rm rustfs/mybucket/localfile.txt # Delete object
mc get rustfs/mybucket/localfile.txt . # Download object
Quick Verification
mc alias set rustfs http://localhost:9000 rustfsadmin ChangeMe123!
mc mb rustfs/mybucket
mc ls rustfs
Usage Limits
S3 API Limits
| Resource | Limit |
|---|---|
| Max object size | 5 TiB |
| Min object size | 0 B |
| Single PUT max (non-multipart) | 500 GiB |
| Multipart upload max | 5 TiB |
| Max parts per upload | 10,000 |
| Part size range | 5 MiB – 5 GiB (last part: 0 – 5 GiB) |
| Max list objects per request | 1,000 |
| Bucket name max length | 63 characters |
| Object name max length | 1,024 characters |
Object name segment max (per /) |
255 characters |
| Max versions per object | 10,000 (configurable) |
Erasure Coding Limits
| Resource | Limit |
|---|---|
| Max servers per cluster | No hard limit |
| Max drives per server | No hard limit |
| Min servers | 1 (SNSD — no redundancy) |
| Read quorum | N/2 |
| Write quorum | (N/2) + 1 |
Naming Conventions
- Production recommendation: Linux + XFS filesystem.
- Avoid special characters on Windows.
- Do not create objects whose names conflict with parent or sibling prefixes.
Platform & OS Support
| Platform | Supported |
|---|---|
| Linux | ✅ |
| Unix | ✅ |
| Windows | ✅ |
| macOS | ✅ |
| FreeBSD | ✅ |
| Docker | ✅ |
| Edge gateways | ✅ |
CPU architectures: x86, ARM, and others.
Documentation Map
Reference structure of the official RustFS documentation at https://docs.rustfs.com:
Installation
- Linux (SNSD / SNMD / MNMD)
- Windows
- macOS
- Docker
- Installation Checklist: Hardware, Network, Software, Security
Performance
- Comparison, Design Architecture, Terminology, Usage Limits
Core Concepts
Management
- Bucket (creation/deletion)
- Object (upload/deletion/scanner)
- IAM (access tokens)
- Upgrade / Expansion / Uninstallation
- Troubleshooting: Disk Failure, Object Healing, Node Failure
Integration
- Nginx Reverse Proxy
- Virtual Host Mode
- TLS Configuration
Developer
- MCP
- MinIO Client (mc)
- SDKs (Java, Python, Rust, JS, TS, Go)
- S3 Compatible API
Features
- Distributed Architecture
- Bare Metal & Virtualized Deployment
- Log Management
- Version Control
- S3 Compatibility
- Object Lock & Read-Only
- Cross-Region Replication
- Encryption
- Lifecycle Management
Solutions
- Modern Data Lake
- AI / ML
- Cloud Native
- Big Data — Compute/Storage Separation
- SQL Support
- Quantitative Trading
- Manufacturing Cost Reduction
- Cold Archive
- Video Storage
- Domestic Innovation
Related
- Docker Compose Deployment — Docker Compose deployment patterns and configuration reference, including the RustFS observability stack.
Source: https://docs.rustfs.com — official RustFS documentation.