ZeroFS adds a native Rust Linux kernel module, bypassing FUSE
ZeroFS ships a Linux kernel module written almost entirely in Rust, bypassing FUSE and running via CI tricks even on kernels without Rust support.
ZeroFS, a network filesystem, now ships an out-of-tree Linux kernel module written almost entirely in Rust, replacing its FUSE-based userspace client. The module speaks the private 9P2000.L.Z protocol directly over TCP or a Unix socket and integrates with netfslib for buffered I/O, removing the userspace round trip that FUSE required for every operation.
Because Linux has no in-tree Rust abstraction for VFS yet, the module fills raw C structs such as file_system_type and super_operations directly from generated bindings, confining unsafe code to that glue layer while the protocol and session logic remain largely safe Rust. Under 250 lines of C cover the static inline netfslib helper functions that bindgen cannot wrap.
To support kernels built without Rust (CONFIG_RUST=n), the project's CI compiles the target kernel's own Rust support together with ZeroFS as LLVM bitcode, discards unreachable code, and pushes the result through the ordinary C module link. The finished module imports only exported C symbols and loads even on distribution kernels lacking Rust entirely, with CI mounting the module on both configurations for every release.