vhaudiquet 56af198d54 fix(rootfs): make cache writes safe against concurrent runs
Downloads, OCI bundle packing and rootfs packing all wrote through
one fixed partial name, so two processes preparing the same entry
interleaved bytes and renamed the wreckage into place for good.
Each writer now gets a unique partial file (utils::partial_path)
and the last atomic rename wins with whole bytes either way; the
layer pointer is written the same way.
2026-10-29 22:42:12 +01:00
2026-10-29 21:47:19 +01:00
2026-10-29 21:47:14 +01:00

écrou logo

ecrou

a small microVM runtime based on libkrun

Try ecrou in the terminal

Installation

ecrou is available as a strictly confined snap:

sudo snap install ecrou
sudo snap connect ecrou:kvm

Usage

$ ecrou run -it ubuntu
root@ecrou-vm-m2glhl:/# 

Embed ecrou into your project

ecrou is both a library and a tiny CLI frontend around it. The library is embeddable into any project, allowing to use microVMs easily.

Rust

ecrou is a Rust library, which can just be called:

use ecrou::vm::RunOptions;
use ecrou::NoProgress;

fn main() -> ecrou::Result<std::process::ExitCode> {
    let code = ecrou::vm::run(
        &RunOptions {
            image: "ubuntu:resolute".into(),
            command: vec!["uname".into(), "-a".into()],
            ..RunOptions::default()
        },
        &NoProgress,
    )?;
    Ok(std::process::ExitCode::from(code.clamp(0, 255) as u8))
}
Languages
Rust 99.4%
Ruby 0.6%