A high-performance, POSIX-ish file system for mounting Amazon S3 and compatible object storage as a local filesystem.
Goofys is a high-performance file system written in Go that allows you to mount Amazon S3 buckets and compatible object storage as local directories. It solves the problem of accessing cloud storage through standard file system interfaces while optimizing for performance in read-heavy and sequential write scenarios. Unlike traditional file systems, it makes pragmatic trade-offs to deliver speed and compatibility across multiple cloud providers.
Developers and system administrators who need to integrate S3 or compatible object storage into their applications or workflows as a mounted file system, particularly those working in cloud-native environments or with data-intensive applications.
Developers choose Goofys for its superior performance compared to alternatives like s3fs, its broad compatibility with S3 and multi-cloud providers, and its lightweight design that avoids unnecessary caching overhead. It's ideal for scenarios where fast, sequential access to cloud storage is more critical than full POSIX compliance.
a high-performance, POSIX-ish Amazon S3 file system written in Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks in the README show Goofys outperforms s3fs in sequential read/write operations, thanks to minimal S3 round-trips and configurable caching options like stat-cache-ttl.
Supports AWS S3, Google Cloud Storage, Azure Blob Storage, and S3-compatible providers like Ceph and Minio, as detailed in the Compatibility section, making it versatile for hybrid cloud setups.
Written in Go with no on-disk data cache, it reduces overhead and complexity, focusing on efficiency for cloud-native workflows, as emphasized in the Philosophy.
Mounts buckets as local directories using FUSE, allowing standard file operations without application changes, and supports startup mounting via /etc/fstab for automation.
The README admits it only supports sequential writes, lacks symlinks/hardlinks, and doesn't store file modes or owners, making it unsuitable for applications relying on full file system semantics.
Without a local cache, repeated file accesses require network calls to S3, which can increase latency and costs for read-heavy workloads, though catfs is suggested as an add-on.
Requires FUSE installation and often root privileges for mounting, which complicates deployment in restricted environments or containerized setups compared to API-only solutions.