mirror of
https://github.com/vhaudiquet/ecrou.git
synced 2026-11-12 22:22:44 +00:00
ed4214180ea5397d4c48764fdd5e8d87354f660f
The design paragraphs follow the code: the rootfs crosses as a raw ext4 image built from the tarball, ownership is real inside the machine, provisioning rides debugfs, and the control file mints the exit code because the engine's own channel is virtiofs-root only. The confinement budget admits the e2fsprogs children and cp, the snap section stages e2fsprogs and names the blk feature, and the boot-economics row counts an image copy instead of an extraction.
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%