# anish7877/quiver architecture

> Architecture diagram of the GitHub repository anish7877/quiver, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/anish7877/quiver
- Repository: https://github.com/anish7877/quiver

## Overview

Quiver is a rootless OCI-compatible container engine and CLI. Its primary workflow starts at the CLI, which dispatches container requests to the runtime; the runtime prepares OCI configuration and Linux isolation, runs the container, and persists state for lifecycle and inspection commands. Separate branches build and manage images. The README documents broader capabilities than the sampled excerpts; those unsampled subsystems are represented only where the tree supports a source path, and their internal wiring is not asserted.

Main entry points: [`src/container_runtime.cpp`](https://github.com/anish7877/quiver/blob/main/src/container_runtime.cpp) (Container runtime), [`src/command_line_handler.cpp`](https://github.com/anish7877/quiver/blob/main/src/command_line_handler.cpp) (Command handler), [`image_build_system/build_executor.cpp`](https://github.com/anish7877/quiver/blob/main/image_build_system/build_executor.cpp) (Image build executor), [`src/database_command_queue.cpp`](https://github.com/anish7877/quiver/blob/main/src/database_command_queue.cpp) (Database command queue)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI and lifecycle"]
  node_main["Application entry<br/>[main.cpp]"]
  node_handler["Command handler"]
end

subgraph group_runtime["Container runtime"]
  node_runtime["Container runtime"]
  node_spec["OCI spec generator<br/>[spec_generator.cpp]"]
  node_mounts["Mount handling<br/>[mount.cpp]"]
  node_security["Capabilities and seccomp<br/>[caps_manager.cpp]"]
  node_seccomp["Seccomp profiles"]
  node_network["Rootless networking<br/>[pasta_network.cpp]"]
  node_pty["Interactive sessions"]
end

subgraph group_state["State and inspection"]
  node_dbqueue["Database command queue"]
  node_dbworker["Database job processor"]
  node_containerdb[("Container metadata")]
  node_imagedb[("Image metadata")]
  node_monitor["Container monitoring"]
end

subgraph group_images["Images and builds"]
  node_image["Image manager<br/>[image_manager.cpp]"]
  node_builder["Image build executor<br/>[build_executor.cpp]"]
  node_parser["Buildfile parser"]
  node_graph["Build graph<br/>[graph_builder.cpp]"]
  node_cache[("Layer cache")]
end

subgraph group_integrations["Host integrations"]
  node_cgroupselect["Cgroup selection"]
  node_rawcgroup["Raw cgroups"]
  node_systemdcgroup["Systemd cgroups"]
end

node_user(("CLI user"))
node_systemd["systemd user session"]
node_pasta["pasta service"]
node_linux["Linux kernel"]
node_registry["OCI registry"]
node_buildkit["Rootless BuildKit"]

node_user -->|"invokes"| node_main
node_main -->|"dispatches"| node_handler
node_handler -->|"requests lifecycle"| node_runtime
node_runtime -->|"generates OCI spec"| node_spec
node_runtime -->|"configures mounts"| node_mounts
node_runtime -->|"configures capabilities"| node_security
node_runtime -->|"loads profiles"| node_seccomp
node_runtime -->|"configures networking"| node_network
node_runtime -->|"manages sessions"| node_pty
node_runtime -->|"selects cgroups"| node_cgroupselect
node_cgroupselect -->|"selects implementation"| node_rawcgroup
node_cgroupselect -->|"selects implementation"| node_systemdcgroup
node_systemdcgroup -->|"sets properties"| node_systemd
node_rawcgroup -->|"writes cgroup files"| node_linux
node_spec -->|"describes isolation"| node_linux
node_mounts -->|"mounts filesystems"| node_linux
node_security -->|"sets capabilities"| node_linux
node_seccomp -->|"sets seccomp"| node_linux
node_network -->|"starts networking"| node_pasta
node_runtime -->|"persists container state"| node_containerdb
node_handler -->|"queries container state"| node_containerdb
node_handler -->|"requests inspection"| node_monitor
node_containerdb -->|"enqueues jobs"| node_dbqueue
node_imagedb -->|"enqueues jobs"| node_dbqueue
node_dbqueue -->|"dispatches jobs"| node_dbworker
node_dbworker -->|"serves container jobs"| node_containerdb
node_dbworker -->|"serves image jobs"| node_imagedb
node_handler -->|"requests image actions"| node_image
node_image -->|"pulls or pushes"| node_registry
node_image -->|"updates image metadata"| node_imagedb
node_handler -->|"requests image build"| node_builder
node_builder -->|"parses buildfile"| node_parser
node_builder -->|"builds dependency graph"| node_graph
node_builder -->|"looks up layers"| node_cache
node_builder -.->|"uses build backend"| node_buildkit
node_cache -->|"enqueues cache jobs"| node_dbqueue

click node_main "https://github.com/anish7877/quiver/blob/main/src/main.cpp"
click node_handler "https://github.com/anish7877/quiver/blob/main/src/command_line_handler.cpp"
click node_runtime "https://github.com/anish7877/quiver/blob/main/src/container_runtime.cpp"
click node_spec "https://github.com/anish7877/quiver/blob/main/src/spec_generator.cpp"
click node_mounts "https://github.com/anish7877/quiver/blob/main/src/mount.cpp"
click node_security "https://github.com/anish7877/quiver/blob/main/src/caps_manager.cpp"
click node_seccomp "https://github.com/anish7877/quiver/blob/main/src/seccomp_profile_manager.cpp"
click node_network "https://github.com/anish7877/quiver/blob/main/src/pasta_network.cpp"
click node_pty "https://github.com/anish7877/quiver/blob/main/src/pty_session_manager.cpp"
click node_cgroupselect "https://github.com/anish7877/quiver/blob/main/src/cgroups_manager_creator.cpp"
click node_rawcgroup "https://github.com/anish7877/quiver/blob/main/src/raw_cgroups_manager.cpp"
click node_systemdcgroup "https://github.com/anish7877/quiver/blob/main/src/systemd_cgroups_manager.cpp"
click node_dbqueue "https://github.com/anish7877/quiver/blob/main/src/database_command_queue.cpp"
click node_dbworker "https://github.com/anish7877/quiver/blob/main/src/database_job_processor.cpp"
click node_containerdb "https://github.com/anish7877/quiver/blob/main/src/container_db_manager.cpp"
click node_imagedb "https://github.com/anish7877/quiver/blob/main/src/image_db_manager.cpp"
click node_monitor "https://github.com/anish7877/quiver/blob/main/src/container_monitor.cpp"
click node_image "https://github.com/anish7877/quiver/blob/main/src/image_manager.cpp"
click node_builder "https://github.com/anish7877/quiver/blob/main/image_build_system/build_executor.cpp"
click node_parser "https://github.com/anish7877/quiver/blob/main/image_build_system/build_file_parser.cpp"
click node_graph "https://github.com/anish7877/quiver/blob/main/image_build_system/graph_builder.cpp"
click node_cache "https://github.com/anish7877/quiver/blob/main/image_build_system/layer_cache_manager.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_handler,node_user,node_systemd toneBlue
class node_runtime,node_spec,node_mounts,node_security,node_seccomp,node_network,node_pty toneAmber
class node_dbqueue,node_dbworker,node_containerdb,node_imagedb,node_monitor toneMint
class node_image,node_builder,node_parser,node_graph,node_cache toneRose
class node_cgroupselect,node_rawcgroup,node_systemdcgroup,node_pasta,node_linux,node_registry,node_buildkit toneIndigo
```

## Components

### CLI and lifecycle

- [Application entry](https://github.com/anish7877/quiver/blob/main/src/main.cpp): `src/main.cpp`
- [Command handler](https://github.com/anish7877/quiver/blob/main/src/command_line_handler.cpp): `src/command_line_handler.cpp`

### Container runtime

- [Container runtime](https://github.com/anish7877/quiver/blob/main/src/container_runtime.cpp): `src/container_runtime.cpp`
- [OCI spec generator](https://github.com/anish7877/quiver/blob/main/src/spec_generator.cpp): `src/spec_generator.cpp`
- [Mount handling](https://github.com/anish7877/quiver/blob/main/src/mount.cpp): `src/mount.cpp`
- [Capabilities and seccomp](https://github.com/anish7877/quiver/blob/main/src/caps_manager.cpp): `src/caps_manager.cpp`
- [Seccomp profiles](https://github.com/anish7877/quiver/blob/main/src/seccomp_profile_manager.cpp): `src/seccomp_profile_manager.cpp`
- [Rootless networking](https://github.com/anish7877/quiver/blob/main/src/pasta_network.cpp): `src/pasta_network.cpp`
- [Interactive sessions](https://github.com/anish7877/quiver/blob/main/src/pty_session_manager.cpp): `src/pty_session_manager.cpp`

### State and inspection

- [Database command queue](https://github.com/anish7877/quiver/blob/main/src/database_command_queue.cpp): `src/database_command_queue.cpp`
- [Database job processor](https://github.com/anish7877/quiver/blob/main/src/database_job_processor.cpp): `src/database_job_processor.cpp`
- [Container metadata](https://github.com/anish7877/quiver/blob/main/src/container_db_manager.cpp): `src/container_db_manager.cpp`
- [Image metadata](https://github.com/anish7877/quiver/blob/main/src/image_db_manager.cpp): `src/image_db_manager.cpp`
- [Container monitoring](https://github.com/anish7877/quiver/blob/main/src/container_monitor.cpp): `src/container_monitor.cpp`

### Images and builds

- [Image manager](https://github.com/anish7877/quiver/blob/main/src/image_manager.cpp): `src/image_manager.cpp`
- [Image build executor](https://github.com/anish7877/quiver/blob/main/image_build_system/build_executor.cpp): `image_build_system/build_executor.cpp`
- [Buildfile parser](https://github.com/anish7877/quiver/blob/main/image_build_system/build_file_parser.cpp): `image_build_system/build_file_parser.cpp`
- [Build graph](https://github.com/anish7877/quiver/blob/main/image_build_system/graph_builder.cpp): `image_build_system/graph_builder.cpp`
- [Layer cache](https://github.com/anish7877/quiver/blob/main/image_build_system/layer_cache_manager.cpp): `image_build_system/layer_cache_manager.cpp`

### Host integrations

- [Cgroup selection](https://github.com/anish7877/quiver/blob/main/src/cgroups_manager_creator.cpp): `src/cgroups_manager_creator.cpp`
- [Raw cgroups](https://github.com/anish7877/quiver/blob/main/src/raw_cgroups_manager.cpp): `src/raw_cgroups_manager.cpp`
- [Systemd cgroups](https://github.com/anish7877/quiver/blob/main/src/systemd_cgroups_manager.cpp): `src/systemd_cgroups_manager.cpp`

### Other components

- **CLI user**
- **systemd user session**
- **pasta service**
- **Linux kernel**
- **OCI registry**
- **Rootless BuildKit**

## Connections

- CLI user → Application entry: invokes
- Application entry → Command handler: dispatches
- Command handler → Container runtime: requests lifecycle
- Container runtime → OCI spec generator: generates OCI spec
- Container runtime → Mount handling: configures mounts
- Container runtime → Capabilities and seccomp: configures capabilities
- Container runtime → Seccomp profiles: loads profiles
- Container runtime → Rootless networking: configures networking
- Container runtime → Interactive sessions: manages sessions
- Container runtime → Cgroup selection: selects cgroups
- Cgroup selection → Raw cgroups: selects implementation
- Cgroup selection → Systemd cgroups: selects implementation
- Systemd cgroups → systemd user session: sets properties
- Raw cgroups → Linux kernel: writes cgroup files
- OCI spec generator → Linux kernel: describes isolation
- Mount handling → Linux kernel: mounts filesystems
- Capabilities and seccomp → Linux kernel: sets capabilities
- Seccomp profiles → Linux kernel: sets seccomp
- Rootless networking → pasta service: starts networking
- Container runtime → Container metadata: persists container state
- Command handler → Container metadata: queries container state
- Command handler → Container monitoring: requests inspection
- Container metadata → Database command queue: enqueues jobs
- Image metadata → Database command queue: enqueues jobs
- Database command queue → Database job processor: dispatches jobs
- Database job processor → Container metadata: serves container jobs
- Database job processor → Image metadata: serves image jobs
- Command handler → Image manager: requests image actions
- Image manager → OCI registry: pulls or pushes
- Image manager → Image metadata: updates image metadata
- Command handler → Image build executor: requests image build
- Image build executor → Buildfile parser: parses buildfile
- Image build executor → Build graph: builds dependency graph
- Image build executor → Layer cache: looks up layers
- Image build executor → Rootless BuildKit: uses build backend
- Layer cache → Database command queue: enqueues cache jobs
