Eru
A stateless, engine-agnostic resource scheduler. Eru core allocates CPU,
memory, GPU and storage across pods of nodes and deploys workloads on Docker
containers or virtual machines through a single gRPC API; agents on each node
report health and workload status back.
eru cli / SDK ──► core (gRPC) ──► resource plugins: cpumem (built in) | gpu | storage
│
├─ store: etcd | redis ── nodes, pods, workloads, deploy status
├─ engine: docker | yavirt (VM, archived runtime) | systemd
└─ node ◄── agent ── health checks, logs, metrics, status heartbeat
Projects
Data plane
- mithril — fast thread-per-core Redis Cluster proxy in
Rust: RESP2/RESP3, transparent topology absorption, per-slot multi-key
fan-out, single-virtual-node cluster emulation.
Core
- core — the scheduler: gRPC API, resource allocation
strategies, Docker / VM engines, etcd or redis metadata, pluggable resource
plugins.
- agent — the per-node agent: workload health checks, log
forwarding, node status heartbeat and Prometheus metrics for Docker and
yavirt runtimes.
- cli — the command-line client: pods, nodes, workloads,
images, networks and lambdas over the core gRPC API.
- resource-extend — out-of-tree resource plugins:
GPU and storage/volume scheduling as external plugin binaries.
- quickstart — start a standalone Eru and run something
on it.
- footstone — container images for building and testing
the Eru system.