ZeroFS is a log-structured filesystem that serves S3-compatible buckets as POSIX filesystems over NFS and 9P, or as raw block devices over NBD.
ZeroFS addresses the challenge of building a performant, POSIX-compliant filesystem on top of object storage. It uses a log-structured approach with compression and encryption applied before data is uploaded to S3. The tool runs all three server types (NFS, 9P, NBD) in a single userspace process and requires no external database, storing all metadata on S3 itself. It achieves near-raw-S3 throughput on large files while scaling to hundreds of millions of small files and handling tens of thousands of requests per second.
Adoption suits teams needing POSIX filesystem semantics over cloud object storage without operational overhead of managing separate metadata services. The project works with Amazon S3, Google Cloud Storage, Azure Blob, and any S3-compatible store, as well as local disk backends. It offers multiple access methods: native kernel client support for Linux, NFS and 9P servers with fallback mounting via zerofs mount, and NBD block device access. High availability is available through optional leader/standby configuration over the same bucket. The tool includes a web UI with file manager, dashboard, and in-browser terminal. Encryption uses XChaCha20-Poly1305 with Argon2id key wrapping, and compression supports zstd or lz4 with codec changes possible without migration.
The project maintains comprehensive test coverage including pjdfstest, xfstests, kernel builds, stress-ng, ZFS, and Jepsen local-fs and HA tests in CI. Packaging is available through apt and dnf with systemd service integration, and prebuilt binaries are distributed for Linux, macOS, and FreeBSD across multiple architectures. The codebase includes an out-of-tree Linux kernel VFS module supporting x86-64 and little-endian arm64 that implements a private 9P2000.L.Z dialect over TCP or AF_UNIX without requiring FUSE.