3 open source tools compared. Sorted by stars — scroll down for our analysis.
| Tool | Stars | Velocity | Score |
|---|---|---|---|
SeaweedFS Distributed storage for S3 and file systems | 31.4k | +116/wk | 79 |
| 2.9k | +3/wk | 71 | |
| 1.2k | +5/wk | 69 |
SeaweedFS is a distributed file system with S3 API support, built for storing billions of files without the S3 bill. Drop it in as a self-hosted replacement for AWS S3, or use it as a general-purpose distributed filesystem with POSIX mount support. It handles small files exceptionally well (no small-file penalty like HDFS), supports S3, WebDAV, and FUSE mount, and scales horizontally by adding more volume servers. Replication, erasure coding, and tiered storage to cloud are built in. Apache 2.0. The project offers a paid cloud hosting option alongside the free self-hosted version. The catch: running a distributed filesystem is not casual ops. You need a master server cluster, volume servers with adequate storage, and monitoring to keep it healthy. The S3 compatibility is good but not 100%; some edge cases in S3 API behavior will surprise you. And if you're storing less than a few TB, the operational overhead isn't worth it. Just use MinIO or pay for S3.
Minio-go is the Go SDK for that. It works with AWS S3, MinIO, Google Cloud Storage, and any S3-compatible service. Picture the Go equivalent of boto3 for Python, but S3-focused. This is a client library, not MinIO itself. You import it into your Go application and use it to interact with object storage. Apache 2.0, maintained by the MinIO team. The SDK is free. What you pay for is the storage backend you connect it to, whether that's AWS S3 ($0.023/GB/mo), MinIO on your own servers (free), or MinIO's commercial SUBNET support ($10/TB/mo minimum). The catch: this is specifically for Go. If you're in Python, Node, Java, or anything else, MinIO has separate SDKs for those. And it's an S3-compatible SDK. If you need broader cloud storage abstractions (Azure Blob, etc.), you might want a cloud-agnostic library instead.
This is Supabase's file storage service built on top of S3. Picture a managed file system with built-in auth rules, image transformations, and resumable uploads. You set policies in SQL (same as your database RLS), and files respect the same auth you already configured. Apache 2.0. The storage API supports presigned URLs, on-the-fly image resizing, and resumable uploads for large files using the TUS protocol. Supabase's free tier gives you 1GB of storage and 2GB bandwidth. Pro at $25/mo bumps that to 100GB storage and 250GB bandwidth, with overage at $0.021/GB stored and $0.09/GB transferred. Image transformations cost extra at $5 per 100 origin images. Self-hosting is possible. The storage server is open source and runs against any S3-compatible backend (MinIO, R2, actual AWS S3). Self-hosted means unlimited storage, no bandwidth fees, but you manage the infra. The catch: this is tightly coupled to the Supabase ecosystem. If you're not already on Supabase, there's no reason to use this over direct S3, Cloudflare R2, or similar. And the 1GB free tier is small; one app with user-uploaded images blows through that fast.