Elixir SDK for bsdkrun — a Firecracker-style microVM launcher for BSD and Linux guests on macOS and Linux, built on libkrun.
The SDK is a thin, stateless wrapper around the bsdkrun binary: it builds
argv, shells out via System.cmd/3, and parses JSON output. It has one runtime
dependency (:jason).
{:ok, box} = Bsdkrun.create(os: :linux, image: "alpine")
{:ok, res} = Bsdkrun.exec(box, ["uname", "-a"])
IO.puts(Bsdkrun.Types.Result.text(res))
:ok = Bsdkrun.stop(box)The binary is resolved (in order) from Bsdkrun.Binary.set_binary_path/1, the
$BSDKRUN_BIN env var, bsdkrun on $PATH, or an in-repo dev build. See
Bsdkrun.Binary.
Modules
Bsdkrun.Sandbox— create / inspect / drive microVMs.Bsdkrun.Images— list downloaded images.Bsdkrun.Volumes— list / remove persistent volumes.Bsdkrun.Networks— global networks (reach machines by name).Bsdkrun.System— probe, fetch BSD images, list versions, grow disks.Bsdkrun.Types— result structs +Bsdkrun.Types.Result.Bsdkrun.Error— the single exception type.