Cisco Posts Rust-Written PuzzleFS File-System Driver For Linux
Ariel Miculas of Cisco today posted an initial "request for comments" patch series on this PuzzleFS file-system with the kernel driver written in Rust. For now this Rust driver is considered proof-of-concept. The patch series goes on to describe PuzzleFS as:
Puzzlefs is a container filesystem designed to address the limitations of the existing OCI format. The main goals of the project are reduced duplication, reproducible image builds, direct mounting support and memory safety guarantees, some inspired by the OCIv2 design document.
Reduced duplication is achieved using the content defined chunking algorithm FastCDC. This implementation allows chunks to be shared among layers. Building a new layer starting from an existing one allows reusing most of the chunks.
Another goal of the project is reproducible image builds, which is achieved by defining a canonical representation of the image format.
Direct mounting support is a key feature of puzzlefs and, together with fs-verity, it provides data integrity. Currently, puzzlefs is implemented as a userspace filesystem (FUSE). A read-only kernel filesystem driver is underway.
Lastly, memory safety is critical to puzzlefs, leading to the decision to implement it in Rust. Another goal is to share the same code between user space and kernel space in order to provide one secure implementation.
Interesting work and this would be the first significant Rust file-system kernel driver posted yet for the ongoing work around introducing Rust support into the mainline Linux kernel.
The RFC patch series for the Rust-coded PuzzleFS driver can be found on the kernel mailing list. The PuzzleFS code can also be found on GitHub.