zcontainer is in active development. This page describes the repository as it stands: the app/engine split, the build layout and the front-end surface. The roadmap column lists work not yet implemented — it is a plan, not a claim of coverage.
Two-layer split
| layer | repository | responsibility |
|---|---|---|
| desktop app | zcontainer (this repo) | Tauri v2 shell, cyberpunk HUD front-end, action-to-engine wiring, sidebar / resource table / drawer |
| engine | zcontainer-core | Docker Engine API (via bollard) + Kubernetes apiserver (via kube-rs) behind one command surface — no CLI subprocess |
Build layout
| path | role |
|---|---|
| app/src-tauri | thin Tauri host: registers the engine command + event sink; setup mounts the engine |
| app/scripts/copy-webui.mjs | syncs crates/zcontainer-core/webui → frontend/ before each dev/build |
| crates/zcontainer-core | the embeddable container / Kubernetes engine (submodule) |
| frontend | app shell, generated from the core's webui (git-ignored) |
A standalone cargo build of app/src-tauri compiles the host + engine after npm run copy-webui has populated frontend/.
Front-end surface
A Docker Desktop-style UI: left sidebar (Containers / Images / Volumes / Networks / Compose / Kubernetes), top bar, status bar, a sortable resource table with status dots and row actions, search/filter, and a log / terminal / YAML-editor drawer. Live container stats (CPU% / memory) come from a two-sample read and aggregate in the header cards. Streaming — log-follow, exec terminals, image-pull progress, port-forwarding — runs over the engine's subscription channel.
Roadmap
| area | status |
|---|---|
| App shell + HUD + engine wiring | implemented |
| Docker resource management + Compose + live stats | implemented in engine |
| Kubernetes multi-cluster resources + Helm + CRDs | implemented in engine |
| Streaming (logs / exec / pull progress / port-forward) | implemented over subscription channel |
| Deeper YAML editing, broader resource coverage, polish | ongoing |