|
| 1 | +# PuzzleFS filesystem driver |
| 2 | + |
| 3 | +[PuzzleFS](https://github.com/project-machine/puzzlefs) is a container |
| 4 | +filesystem designed to address the limitations of the existing OCI format. The |
| 5 | +main goals of the project are reduced duplication, reproducible image builds, |
| 6 | +direct mounting support and memory safety guarantees, some inspired by the |
| 7 | +[OCIv2 design document](https://hackmd.io/@cyphar/ociv2-brainstorm). |
| 8 | + |
| 9 | +Reduced duplication is achieved using the content defined chunking algorithm |
| 10 | +FastCDC. This implementation allows chunks to be shared among layers. Building |
| 11 | +a new layer starting from an existing one allows reusing most of the chunks. |
| 12 | + |
| 13 | +Another goal of the project is reproducible image builds, which is achieved by |
| 14 | +defining a canonical representation of the image format. Direct mounting |
| 15 | +support is a key feature of puzzlefs and, together with fs-verity, it provides |
| 16 | +data integrity. |
| 17 | + |
| 18 | +Lastly, memory safety is critical to puzzlefs, leading to the decision to |
| 19 | +implement it in Rust. Another goal is to share the same code between user space |
| 20 | +and kernel space in order to provide one secure implementation. |
| 21 | + |
| 22 | +## Resources |
| 23 | + |
| 24 | + - [PuzzleFS main repository](https://github.com/project-machine/puzzlefs) |
| 25 | + - [PuzzleFS kernel branch](https://github.com/ariel-miculas/linux/tree/puzzlefs) |
| 26 | + - [Issue tracking the development of the kernel driver](https://github.com/project-machine/puzzlefs/issues/78) |
| 27 | + - [Talk at Open Source Summit Europe](https://osseu2023.sched.com/event/b98e711a56261b4a892b5fdcdc29ca73) |
| 28 | + - [Kangrejos slides](https://kangrejos.com/2023/PuzzleFS.pdf) |
| 29 | + - [LWN article](https://lwn.net/Articles/945320/) |
| 30 | + |
| 31 | +## Maintenance |
| 32 | + |
| 33 | +The PuzzleFS driver is maintained by Ariel Miculas. Contact him at |
| 34 | + |
| 35 | +[Zulip](Contact.md#zulip-chat). |
0 commit comments