MCPcopy Index your code
hub / github.com/AsahiLinux/muvm

github.com/AsahiLinux/muvm @krun-sys-1.9.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release krun-sys-1.9.1 ↗ · + Follow
52 symbols 99 edges 30 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

krun - run programs from your system in a microVM

krun allows you to run arbitrary programs from your system in a microVM. It's comprised of two small programs:

  • krun: links against libkrun to create the microVM.

  • krun-guest: acts as an entrypoint inside the microVM to set up the environment for running your program.

Using


Usage: krun [OPTIONS] COMMAND [COMMAND_ARGS...]
OPTIONS:
        -h    --help                Show help
              --net=NET_MODE        Set network mode
              --passt-socket=PATH   Instead of starting passt, connect to passt socket at PATHNET_MODE can be either TSI (default) or PASST

COMMAND:      the command you want to execute in the vm
COMMAND_ARGS: arguments of COMMAND

Running graphical applications

If sommelier is installed in your system, krun will use it to connect to the Wayland session on the hosts, allowing you to run graphical applications in the microVM.

GPU acceleration is also enabled on systems supporting DRM native context (freedreno, amdgpu, asahi).

Running x86/x86_64 on aarch64

If FEX-Emu is installed in your system, krun will configure binfmt_misc inside the microVM so x86/x86_64 programs can be run transparently on it.

Motivation

This tool is mainly intended to enable users to easily run programs designed for 4K-page systems on systems with a different page size, with Asahi Linux being the prime example of this use case.

Other potential use cases could be software isolation, accessing privileged kernel features (provided by the guest) or local testing.

Core symbols most depended-on inside this repo

find_in_path
called by 7
crates/krun/src/utils/env.rs
options
called by 6
crates/krun/src/guest/cli_options.rs
run
called by 4
crates/krun/src/server/worker.rs
prepare_env_vars
called by 3
crates/krun/src/env.rs
find_executable
called by 3
crates/krun/src/utils/fs.rs
request_launch
called by 2
crates/krun/src/launch.rs
options
called by 2
crates/krun/src/cli_options.rs
find_krun_exec
called by 2
crates/krun/src/env.rs

Shape

Function 32
Method 11
Class 7
Enum 2

Languages

Rust100%

Modules by API surface

crates/krun/src/server/worker.rs12 symbols
crates/krun/src/launch.rs6 symbols
crates/krun/src/types.rs3 symbols
crates/krun/src/server/cli_options.rs3 symbols
crates/krun/src/guest/cli_options.rs3 symbols
crates/krun/src/cli_options.rs3 symbols
crates/krun/src/net.rs2 symbols
crates/krun/src/guest/user.rs2 symbols
crates/krun/src/env.rs2 symbols
crates/krun/src/cpu.rs2 symbols
crates/krun/src/utils/stdio.rs1 symbols
crates/krun/src/utils/launch.rs1 symbols

For agents

$ claude mcp add muvm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact