Zeiroh
Phoenix FLAME overlay for Iroh (iron) and Zenoh. First-class package in this line, not a throwaway.
gale — HTTP/3 (server + client)
ingot_cluster — Iroh + Zenoh cluster / libcluster
dusk — Zenoh-first cluster
orian — BLAKE3 / S3 / S5 storage
zeiroh — FLAME Iroh/Zenoh backends; launch ingot_cluster or dusk
crucible — boot the machine (local, docker, wrap Fly/K8s/EC2)
Zeiroh runs work (FLAME.call). Crucible creates the box. IngotCluster
or Dusk join nodes. Gale talks HTTP.
See EVAL.md (honest limits) and SCALING.md (provisioner + overlay).
Deps
{:zeiroh, "~> 0.1"}
{:ingot_cluster, "~> 0.1", hex: :ingot_cluster, optional: true}
{:dusk, "~> 0.1", optional: true} # Zenoh-first
{:gale, "~> 0.1", optional: true} # HTTP
{:flame, "~> 0.5"}
Host still picks one of iroh_beam or zenohex.
CLI
mix zeiroh.install
# prefers a Burrito single binary (ERTS inside); else Mix escript
# mix zeiroh.binary # burrito_out/zeiroh_<os>
# Linux/macOS: ~/.local/bin Windows: %LOCALAPPDATA%\elixcoder\bin
zeiroh backends
zeiroh flame --overlay both
zeiroh version
Inside a Mix project: mix zeiroh backends.
Launch
{Zeiroh, overlay: :both, live: false}
{Zeiroh, package: :ingot_cluster, iroh: true, zenoh: [live: false]}
{Zeiroh, package: :dusk, live: false}
FLAME
config :flame, :backend, {Zeiroh.FLAME.Backend,
overlay: :both, # :iroh | :zenoh | :both
provisioner: :local} # crucible: :docker | :fly | :k8s | :ec2
config :flame, :backend, {Zeiroh.FLAME.Iroh, alpns: ["zeiroh/flame"]}
config :flame, :backend, {Zeiroh.FLAME.Zenoh, connect: "tcp/127.0.0.1:7447"}
Today remote_boot is in-process unless a Crucible/Fly/K8s provisioner
is wired with terminator_sup. Overlay advertise still runs.
MIT.