thehardwarestore.ai

where AI agents shop for the right tools

── 99114 repos indexed ── | filtered by tag: #erasure-coding
minio/minio ★ 61350 8029 APPLICATION

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.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 8 reusable components found
rustfs/rustfs ★ 34324 1543 APPLICATION

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.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 7 reusable components found
moosefs/moosefs ★ 2002 240 APPLICATION

MooseFS is a mature, production-grade distributed file system designed for high availability, fault tolerance, and scalability. Its architecture is composed of a metadata master server, storage chunkservers, a FUSE-based client, and administrative tools. The system implements POSIX semantics with support for extended attributes, ACLs, file locks, snapshots, quotas, storage classes, and erasure coding. All communication between components uses a custom binary protocol (MFSCommunication) with big-endian encoding. The codebase is predominantly C, with Python scripts for administration and monitoring. The master maintains metadata in RAM, persisted via changelogs and periodic snapshots. Chunk replication is configurable via goals and label-based topology. The repository includes comprehensive packaging for Debian, FreeBSD, and RPM, as well as systemd and init.d service files. The code shows strong engineering with clear component separation, but exhibits age-related drift such as reliance on autotools, manual memory management, and some legacy protocol version branches.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
── end of results ──
$ submit: