ZeroFS Turns S3 Buckets Into Linux Filesystems and Block Devices

ZeroFS is a new open-source project that exposes S3-compatible storage over NFS, 9P, and NBD for Linux systems.

Most people know S3-compatible storage, an object storage that follows Amazon S3’s API model, as a place to keep backups, archives, images, logs, or application data. This includes AWS S3, commercial S3-compatible cloud services, and self-hosted platforms such as Garage, SeaweedFS, and RustFS.

It is cheap, widely available, and works well at large scale, but it does not normally behave like the storage Linux users deal with every day. ZeroFS tries to change that.

It is a new open-source project that presents S3-compatible object storage as Linux-accessible filesystems and block devices, enabling broader use of object storage beyond backup, archival, or application-specific workflows.

On the technical side, ZeroFS operates between the storage backend and the operating system, serving data as a POSIX-style filesystem over NFS or 9P, or as raw block storage via NBD. This allows the same S3-compatible backend to be accessed as files and directories or as a block device that can be formatted with filesystems like ext4 or used by storage stacks such as ZFS.

The project’s main goal is simple: making object storage usable where Linux systems expect filesystem or block-device access. Rather than relying on FUSE mounts or custom S3 API applications, ZeroFS uses protocols already supported by operating systems. According to the documentation, this includes file-level access through NFS and 9P, and block-level access through NBD.

Here’s a little more about them. NFS provides ZeroFS with broad compatibility, as NFS clients are practically available on almost every Unix-like OS. The 9P option targets Linux environments specifically, offering stronger POSIX compliance and advanced caching. NBD (Network Block Device protocol) is unique in that it enables S3-compatible storage to appear as a raw block device.

According to the project’s documentation, NBD devices created by ZeroFS can be used for ext4 filesystems, ZFS pools, databases, and VM boot disks. In other words, ZeroFS is not limited to presenting files from object storage, but it also supports Linux storage layers on top of an S3-compatible backend.

On the security side, ZeroFS enforces mandatory encryption. Data is encrypted before upload using XChaCha20-Poly1305, with keys derived from a password via Argon2id. There is no unencrypted mode, ensuring object storage providers only receive encrypted data.

Additionally, file data is compressed before encryption, with zstd as the default and LZ4 as a faster alternative. Plus, the compression method can be changed without migrating existing data, and previously written chunks remain accessible.

Regarding performance, and more specifically caching, ZeroFS supports memory and local disk caching to mitigate object-storage latency, a well-known limitation when using S3-compatible storage as a traditional filesystem. Additional features include checkpoints, read replicas, TRIM support, optional WAL storage, a standalone compactor, and a web UI with a file manager, dashboard, and browser terminal.

Still, ZeroFS should be evaluated carefully. Object storage differs significantly from local disks or traditional network storage in latency and consistency, and using it as a filesystem or block device introduces operational trade-offs.

But even with that in mind, ZeroFS is a compelling option for testing cloud-backed filesystems, self-hosted storage, encrypted remote storage, and experimental block-device workflows on object storage. The project is written in Rust and released as free and open-source software under the AGPL-3.0 license.

Additional details, installation instructions, and configuration examples are available on the project’s official website and GitHub repository.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *