From 062fdca59d6f3925b8c54bb87b267083fe6566d2 Mon Sep 17 00:00:00 2001 From: Valentin Haudiquet Date: Thu, 29 Oct 2026 21:47:14 +0100 Subject: [PATCH] docs: add a README How to install and run the snap, and how to embed the library: one RunOptions example covers a basic machine. The logo lives under .github/img. --- .github/img/logo.svg | 46 +++++++++++++++++++++++++++++++++++++++++++ README.md | 47 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 .github/img/logo.svg create mode 100644 README.md diff --git a/.github/img/logo.svg b/.github/img/logo.svg new file mode 100644 index 0000000..743e12a --- /dev/null +++ b/.github/img/logo.svg @@ -0,0 +1,46 @@ + + écrou + A steel hex nut: rounded hexagonal body, chamfered top face, threaded hole at the center. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..135249b --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +

+ é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: +```rust +use ecrou::vm::RunOptions; +use ecrou::NoProgress; + +fn main() -> ecrou::Result { + 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)) +} +``` +