Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/edda

crates/jera/src/lib.rs

//! # jera — the shared infra runtime
//!
//! The non-UI runtime lifted out of nornir so both **nornir** and **korp** depend
//! on one lean crate instead of pulling each other's dep trees (no dep-hell):
//!
//! - [`jobs`] — the durable **job ledger / engine**: the one redb list of every
//!   long-running operation (`running → done|failed` + timing), with a fat-client
//!   (local `jobs.redb`) or thin-client (submit-over-a-sink) [`jobs::JobSink`].
//! - [`container`] — a **no-shell container runtime** routed THROUGH **draupnir**'s
//!   ONE OCI engine: bring a container up, stream its logs, tear it down
//!   ([`container::DraupnirContainerBootRunner`]) — and [`container::run_container`],
//!   "run a container **as a job**" (via `draupnir::container::run_to_completion`).
//!   No `std::process::Command`, no CLI shell-out, and no second engine here.
//! - [`vm`] — a **no-shell KVM/VM boot** seam: map a [`vm::BootSpec`] onto
//!   **draupnir**'s KVM backend (which drives tunnr) and run its lifecycle as a job.
//!   jera never calls tunnr directly — instance-firing lives in draupnir.
//! - [`boot`] — the engine-agnostic boot lifecycle shared by the container/VM/exe
//!   runners ([`boot::BootStatus`], [`boot::BootProc`]) and the job-bound
//!   [`boot::BootJobs`] manager — the reusable "start X as a tracked job" engine.
//! - [`policy`] — the thin [`policy::JobPolicy`] classification (`Process | Vm |
//!   Container`): a job is one of three kinds, and the `Vm`/`Container` kinds
//!   **delegate instance-firing to draupnir**. jera keeps only job policy.
//!
//! [bollard]: https://docs.rs/bollard

pub mod jobs;
#[cfg(feature = "runners")]
pub mod boot;
#[cfg(feature = "runners")]
pub mod container;
pub mod policy;
#[cfg(feature = "runners")]
pub mod vm;
pub mod agent;
/// The gRPC wire for the multi-machine agent scheduler (feature `agent-grpc`).
#[cfg(feature = "agent-grpc")]
pub mod agent_grpc;

pub use policy::JobPolicy;