Crate Map¶
CIAB consists of 18 Rust crates organized in a workspace.
Crate Overview¶
| Crate | Purpose | Key Types |
|---|---|---|
ciab | Rust library facade | CiabEngine, CiabEngineBuilder, feature-gated re-exports |
ciab-core | Foundation types, traits, errors | SandboxInfo, Session, Message, StreamEvent, CiabError |
ciab-db | SQLite persistence via sqlx | Database, migrations |
ciab-streaming | SSE broker and event buffering | StreamBroker, EventBuffer |
ciab-sandbox | Runtime backends: local process, Docker, OpenSandbox | SandboxRuntime, LocalProcessRuntime, lifecycle APIs |
ciab-sandbox-k8s | Kubernetes runtime backend | KubernetesRuntime, Pod builder, PVC, RBAC |
ciab-sandbox-ec2 | AWS EC2 runtime backend | Ec2Runtime, instance lifecycle, SSH execution |
ciab-agent-claude | Claude Code agent provider | ClaudeCodeProvider |
ciab-agent-codex | Codex agent provider | CodexProvider |
ciab-agent-gemini | Gemini CLI agent provider | GeminiProvider |
ciab-agent-cursor | Cursor agent provider | CursorProvider |
ciab-credentials | Encrypted credential store | CredentialStore, AES-GCM encryption |
ciab-provisioning | 11-step sandbox provisioning | ProvisioningPipeline, ProvisioningStep |
ciab-packer | HashiCorp Packer image builder | PackerBuilder, template resolution, build tracking |
ciab-gateway | Web gateway + tunneling + LAN/mDNS | Bore, Cloudflare, ngrok, frp tunnel adapters |
ciab-channels | External messaging adapters | Slack, WhatsApp, webhook integrations |
ciab-api | Axum REST API server | Routes, handlers, middleware |
ciab-cli | CLI binary (ciab) | Command definitions, HTTP client |
Dependency Graph¶
graph BT
core[ciab-core]
db[ciab-db] --> core
streaming[ciab-streaming] --> core
sandbox[ciab-sandbox] --> core
k8s[ciab-sandbox-k8s] --> core
ec2[ciab-sandbox-ec2] --> core
claude[ciab-agent-claude] --> core
codex[ciab-agent-codex] --> core
gemini[ciab-agent-gemini] --> core
cursor[ciab-agent-cursor] --> core
creds[ciab-credentials] --> core
creds --> db
packer[ciab-packer] --> core
prov[ciab-provisioning] --> core
prov --> sandbox
prov --> creds
prov --> streaming
api[ciab-api] --> core
api --> db
api --> streaming
api --> sandbox
api --> prov
api --> creds
api --> claude
api --> codex
api --> gemini
api --> cursor
api --> packer
gateway[ciab-gateway] --> core
channels[ciab-channels] --> core
facade[ciab] --> core
facade --> db
facade --> sandbox
facade --> ec2
facade --> k8s
facade --> packer
facade --> api
cli[ciab-cli] --> core Core Types (ciab-core)¶
Types (ciab-core/src/types/)¶
sandbox.rs—SandboxState,SandboxInfo,SandboxSpec,ResourceLimits,ResourceStats,ExecRequest,ExecResult,FileInfosession.rs—Session,SessionState,Message,MessageRole,MessageContentstream.rs—StreamEvent,StreamEventTypeconfig.rs—AppConfig,ServerConfig,AgentProviderConfigcredentials.rs—CredentialSet,CredentialType
Traits (ciab-core/src/traits/)¶
agent.rs—AgentProvidertrait (10 methods)runtime.rs—SandboxRuntimetraitstream.rs—StreamHandlertrait