MinIO is a high-performance, S3-compatible object storage server implemented in Go. It is a monolithic application that provides a full-featured object storage system supporting erasure coding, bitrot protection, IAM, replication, lifecycle management, and a web console. The codebase is organized around a central `cmd` package containing the server implementation, with extensive `internal` packages for subsystems like erasure coding, encryption, event notifications, and distributed locking. The architecture follows a distributed systems pattern where nodes communicate via custom REST protocols and a proprietary grid messaging system for internode communication. The system implements a sophisticated storage engine using Reed-Solomon erasure coding with support for multiple storage classes, bitrot detection via HighwayHash, and strong consistency guarantees. It supports a wide range of protocols including S3 API, FTP/SFTP, and S3 Select for SQL queries on stored objects. The codebase demonstrates advanced Go patterns including extensive use of build tags for platform-specific code, code generation for serialization (msgp), and a plugin-based architecture for external identity providers and KMS integration. Key architectural components include the erasure coding subsystem (`cmd/erasure*.go`), the object API layer (`cmd/object-api*.go`), the IAM system (`cmd/iam*.go`, `cmd/auth-handler.go`), and the distributed systems infrastructure (`internal/grid`, `internal/dsync`). The codebase shows significant investment in operational features including comprehensive metrics exposure via Prometheus, audit logging, batch jobs for large-scale operations, and extensive debugging tools. The project maintains high code quality with extensive testing, CI/CD pipelines, and support for multiple deployment modes including standalone, distributed, Kubernetes, and various cloud platforms.
RustFS is a production-grade, S3-compatible distributed object storage server implemented in Rust. The core system provides erasure-coded storage with healing, bitrot detection, bucket versioning, object locking, lifecycle management, replication (bucket and site), tiering to remote S3-compatible backends, KMS integration, IAM/OIDC/Keystone authentication, audit logging, event notifications, and an extensive observability layer. It also exposes non-S3 protocols including OpenStack Swift, SFTP, FTPS, and WebDAV, plus an admin/console API and an embedded server library for in-process testing and integration. The repository is a large Cargo workspace of roughly 50 crates, with the main `rustfs` binary orchestrating startup, HTTP/gRPC servers, background services, and protocol servers, while domain subsystems such as `ecstore`, `heal`, `scanner`, `replication`, `notify`, `kms`, `iam`, `obs`, and `targets` are isolated behind trait-based contracts and runtime-boundary modules.
AIStore (AIS) is a high-performance, distributed object storage system engineered for AI/ML workloads. It operates as a cluster of proxy (gateway) and target (storage) nodes, providing S3-compatible API, multi-cloud backend support (AWS, GCP, Azure, OCI), and advanced data management features such as erasure coding, mirroring, LRU caching, and distributed resharding (dsort). The system is designed for linear scale-out and consistent performance, with a rich set of extended actions (xactions) for batch operations like copy-bucket, archive, blob download, and ETL transformations. It includes a full-featured CLI (`ais`), a Python SDK with PyTorch dataset integration, and a standalone authentication server (AuthN). The codebase is primarily a production-grade application with strong software engineering practices: modular architecture, extensive unit and integration tests, code generation for high-performance serialization (msgp), and build-tag-based feature gating. It demonstrates non-obvious craftsmanship in areas like memory management (slab allocators, SGL), intra-cluster transport (stream bundles), and probabilistic data structures (dynamic cuckoo filters). While the core is a storage system, it has significant data/research features (ETL pipelines, distributed sorting, shard indexing) that make it a hybrid tool for AI data pipelines. Key entry points include `cmd/aisnode/main.go` (server), `cmd/cli/main.go` (CLI), `cmd/authn/main.go` (authentication), and `python/aistore/sdk/` (Python SDK). The system relies on cloud SDKs, Kubernetes client, and various Go libraries. It is actively maintained with frequent commits, comprehensive CI/CD, and a large test suite.
AList is a self-hosted file listing and sharing gateway written in Go. In production it aggregates over 100 distinct storage backends — local disk, Aliyun Drive, OneDrive, Google Drive, S3, Baidu, PikPak, Thunder, WebDAV mounts, FTP/SFTP servers, and more — behind a unified virtual file tree, then exposes that tree simultaneously through a web UI + REST API, WebDAV, an S3-compatible object storage endpoint, FTP, SFTP, and an MCP (Model Context Protocol) tool server. It is a monolithic Go application (Gin + GORM) deployed as a single binary or Docker container, with a rich feature surface: role/permission-based multi-user access with path-scoped grants, password-protected time-limited shares with burn-after-read and download tracking, pluggable search backends (Meilisearch, Bleve, database full-text, no-index), offline downloads via aria2/qBittorrent/Transmission plus cloud-native tools, archive extraction (zip/7z/rar/iso9660), device session limits, rate limiting, SSO/LDAP/WebAuthn auth, and an FRP reverse-proxy client for NAT traversal.
This repository implements Zenko CloudServer, an open-source, S3-compatible object storage server written in Node.js. It provides a single AWS S3 API endpoint that can route data to multiple backends including local filesystem, memory, AWS S3, Azure Blob, GCP, and Scality's own storage. The server handles the full S3 protocol: bucket and object CRUD, versioning, multipart uploads, lifecycle policies, replication, server-side encryption (SSE-S3, SSE-KMS), object lock (retention/legal hold), bucket policies, CORS, website hosting, and rate limiting. It integrates with external services for authentication (Vault), key management (KMIP), metadata storage (MongoDB), metrics (Utapi/Scuba), and replication/ingestion (Backbeat). The architecture is a multi-process Node.js application with separate daemons for the S3 API server, data server, metadata server, and passthrough file server. Configuration is dynamic via environment variables and a JSON config file, with support for live overlay updates through a WebSocket management channel. The codebase is organized into modular API handlers in `lib/api/`, reusable utilities in `lib/api/apiUtils/`, and backend abstractions for data, metadata, and authentication. Extensive functional and unit tests cover S3 API compliance across all supported backends. Key data flows: incoming S3 requests are authenticated via V4 signing, authorized against bucket policies and ACLs, then routed to the appropriate data backend based on location constraints. Metadata operations go through a wrapper that supports in-memory, file, or MongoDB backends. Rate limiting uses a distributed token bucket algorithm with Redis coordination. Metrics are pushed to Utapi and exposed via Prometheus. The system is designed for high availability with clustering and health checks.