A Rust implementation of composefs with support for creating and managing verified operating system images. This project provides tools and libraries for working with composefs repositories and building secure, content-addressed filesystem images.
Note: it is planned for this project to become the primary reference implementation of composefs, replacing the C-based implementation. For more on this, see this discussion.
Anywhere one wants versioned immutable filesystem trees ("images"), composefs provides a lot of compelling advantages. In particular this project aims to be the successor to ostree for example.
composefs
: Core library for composefs operations including filesystem trees, fs-verity support, and repository managementcomposefs-oci
: OCI image handling and integration with container registriescomposefs-boot
: Boot infrastructure support including UKI (Unified Kernel Image) and BLS (Boot Loader Specification) integrationcomposefs-http
: HTTP support for fetching composefs contentcomposefs-fuse
: FUSE filesystem implementation
cfsctl
: Primary CLI tool for managing composefs repositoriescomposefs-setup-root
: Early boot tool for setting up the root filesystem from a composefs image
The examples
directory contains working demonstrations of building verified OS images:
- UKI: Unified Kernel Image with embedded composefs digest
- BLS: Traditional kernel/initramfs with Boot Loader Specification entries
- Unified: Streamlined UKI build using in-container measurement
- Unified-SecureBoot: UKI with Secure Boot signing support
This project is under active development. It is still possible that the layout of a composefs repository will change for example.
See LICENSE-APACHE and LICENSE-MIT.