Skip to main content

Crate decompose

Crate decompose 

Source
Expand description

Decompose: a process orchestrator for local development with Docker-Compose-compatible config and CLI surface.

The crate is split into a thin client and a long-running daemon. The decompose binary always runs as the client; on up it spawns a detached daemon process per project (identified by a SHA-256 of the config directory plus file set, or by --session NAME) and then talks to it over a local socket.

§Module map

  • cliclap argument definitions for every subcommand.
  • config — YAML parsing, merge/overlay, .env loading, ${VAR} interpolation, and validation.
  • daemon — supervisor loop, IPC server, process lifecycle, signal handling, reload/diff, health-probe scheduling.
  • ipc — request/response wire types and a JSON-over-local-socket transport used by both halves.
  • model — runtime types shared by the daemon and its clients (ProcessInstanceSpec, ProcessRuntime, ProcessSnapshot, HealthProbe, …).
  • output — JSON / table formatting and TTY-aware mode resolution.
  • paths — XDG path management and instance-ID hashing.
  • tui — the optional interactive terminal UI built on ratatui.
  • tuning — env-var-overridable timing knobs (supervisor tick, IPC timeout, orphan grace period).
  • completion — shell completion script generator.
  • health_probes — exec/HTTP probe execution for readiness and liveness checks.

run_cli is the single entry point used by main.rs. See CLAUDE.md for the full design notes and project conventions.

Modules§

cli
completion
Shell completion generation.
config
daemon
health_probes
Health probe runtime.
ipc
model
output
paths
tui
Preliminary TUI for decompose up --tui.
tuning
Runtime tuning knobs.

Structs§

GlobalConfig
Global config flags that live on the top-level Cli struct.

Functions§

run_cli