Royak (рояк — Bulgarian for “swarm”) orchestrates Docker containers the way Kubernetes does — deployments, rolling updates, services, RBAC, autoscaling — in a single ~5 MB binary. No etcd, no control-plane zoo, nothing to babysit.
git clone https://github.com/evotech-bg/royak && cd royak && cargo build --release
Every few seconds Royak reads what you asked for, reads what Docker is actually running, diffs the two, and acts. That’s the whole trick — the same reconcile model Kubernetes implements with etcd, kubelet, kube-proxy and a control plane, collapsed into one process.
Your YAML specs — Deployments, Services, ConfigMaps, 22+ resource kinds — parsed and held as the target world.
Live queries against the Docker API. No cache to go stale: what Docker says is what counts.
Missing pod? Create it. Crashed? Restart it — with CrashLoopBackOff so it never spins forever. Too many? Remove.
$ royak apply examples/nginx.yaml ✓ deployment/web applied [scale] web: 0 → 2 (+2) [mtls] rk-web-1 cert issued (CA: 1e7788c2…, expires: 90d) [create] rk-web-1 (main) → e30a2a93a6ce [start] rk-web-1 ✓ [start] rk-web-2 ✓ $ royak get pods NAME IMAGE STATE STATUS rk-web-2 nginx:alpine running Up Less than a second rk-web-1 nginx:alpine running Up Less than a second 2 pod(s) total $ royak scale web 5 Scaling web: 2 → 5 [start] rk-web-3 ✓ [start] rk-web-4 ✓ [start] rk-web-5 ✓ $ royak api & $ kubectl --server=http://localhost:6443 get pods NAME AGE rk-web-5 0s rk-web-4 0s …your existing kubectl, no --validate=false.
Everything below is exercised by the test suite on every commit — 85 unit tests plus 120+ integration checks across six suites, and a feature-by-feature compatibility ledger verified against a real kubectl.
Create, scale, delete with CPU/memory limits and HPA autoscaling. StatefulSets get ordered startup, stable identity and per-ordinal volumes.
Zero-downtime rollouts with readiness checks and auto-rollback on timeout. Rollback works even after the rollout completes.
ClusterIP discovery with pod-to-service DNS, NodePort via the built-in ServiceLB (userspace load balancer), and a live ingress reverse proxy — async, streaming, TLS.
Role-based access enforced on every API write. Secrets encrypted at rest with AES-256-GCM. mTLS cluster CA with per-pod certificates.
get, describe, delete, watch, logs, scale, exec -it, get events and apply with client-side updates.
UDP autodiscovery, pod distribution, heartbeat monitoring, and a cross-node service proxy so pods on node B reach services on node A.
Define an Operator plus a CustomResource in YAML and Royak auto-provisions and manages the lifecycle.
Declarative auto-remediation: pod crash → restart, high memory → scale up. Anomaly detection watches cluster telemetry.
CI/CD pipelines with DAG dependencies, git triggers and matrix builds. Jobs, CronJobs, Functions — all as YAML kinds.
Built-in web dashboard and a Prometheus /metrics endpoint. Log aggregation with search.
A small neural net trains on cluster telemetry for anomaly detection and load prediction. It monitors — the reconcile loop decides.
13 tools for AI-assistant integration: deploy, scale, exec, logs, top — manage the swarm in natural language.
Royak is an MVP of a vision — great for learning, demos, homelabs and edge boxes. It is not ready to carry your production. We test every feature in CI, but our testing is not a substitute for yours: evaluate it against your own workloads, and use it at your own risk (MIT, as-is, no warranty). Every gap below is designed and scheduled in the public roadmap, not swept under a rug. The full feature-by-feature ledger — every row verified live against a real kubectl — lives in COMPATIBILITY.md.
helm template ./chart | royak apply - works today.Build from source, or grab a pre-built beta binary for Linux (x86_64/aarch64) and macOS (Apple silicon/Intel) from GitHub Releases.
# prerequisites: Docker running, Rust toolchain git clone https://github.com/evotech-bg/royak cd royak cargo build --release # deploy nginx with 2 replicas ./target/release/royak apply examples/nginx.yaml # see the swarm ./target/release/royak get pods
Linux or macOS · Docker (or Colima/OrbStack — DOCKER_HOST is honoured) · Rust 1.75+