The central daemon manager, API gateway, and backend infrastructure for the
cdd-*SDK toolchain.
cdd-ctl is a high-performance Rust backend that orchestrates a multi-language JSON-RPC ecosystem. It provides an integrated daemon manager to supervise child processes alongside a comprehensive, OpenAPI-driven web backend. Built with Role-Based Access Control (RBAC), cdd-ctl securely manages organizations, SDK repositories, and software releases.
| Feature | Description |
|---|---|
| Daemon Manager | A built-in supervisor that manages the lifecycle, logging, and auto-restart backoff for up to 13 distinct cdd-* JSON-RPC language servers. |
| REST API Gateway | A high-performance RESTful API built on the actix-web framework. |
| Database & ORM | Robust PostgreSQL data modeling using diesel to manage organizations, users, repositories, and releases. |
| GitHub Integration | Seamlessly supports GitHub OAuth, webhooks, and automated secret management using Libsodium. |
| Authentication | Secure JWT-based Bearer authentication, including an OAuth2 password grant flow with Argon2 hashing. |
| Access Control (RBAC) | Organization ownership models that securely isolate management of SDKs and synchronization processes. |
| OpenAPI Integration | Fully self-documenting. Exposes a live Swagger UI at /swagger-ui/ out of the box using utoipa. |
| Quality Assurance | Maintained with strict 100% test and rustdoc coverage requirements (cargo tarpaulin), enforced in CI. |
cdd-ctl daemonizes and interfaces with the following language SDKs:
| Repository | Language | Client; Client CLI; Server | Extra features | Standards | CI Status | Browser/WASI | WASM Notes |
|---|---|---|---|---|---|---|---|
cdd-c |
C (C89) | Client; Client CLI; Server | FFI | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 0.80MB - Executes via pure WASI | |
cdd-cpp |
C++ | Client; Client CLI; Server | Upgrades Swagger & Google Discovery to OpenAPI 3.2.0 | Google Discovery; Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 4.40MB - Executes via pure WASI | |
cdd-csharp |
C# | Client; Client CLI; Server | CLR | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 5.44MB - Executes via pure WASI (Wasi.Sdk) | |
cdd-go |
Go | Client; Client CLI; Server | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 14.14MB - Executes via pure WASI | ||
cdd-java |
Java | Client; Client CLI; Server | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 21.39MB - Executes via pure WASI (GraalVM native-image) | ||
cdd-kotlin |
Kotlin (ktor for Multiplatform) | Client; Client CLI; Server | Auto-Admin UI | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 0.45MB - Executes via pure WASI | |
cdd-php |
PHP | Client; Client CLI; Server | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 24.79MB - Executes via pure WASI | ||
cdd-python-all |
Python | Client; Client CLI; Server | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 48.11MB - Executes via WASI (py2wasm) | ||
cdd-ruby |
Ruby | Client; Client CLI; Server | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 51.21MB - Executes via WASI (rbwasm) | ||
cdd-rust |
Rust | Client; Client CLI; Server | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 4.72MB - Executes via pure WASI | ||
cdd-sh |
Shell (/bin/sh) | Client; Client CLI; Server | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 10.48MB - Executes via pure WASI | ||
cdd-swift |
Swift | Client; Client CLI; Server | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 94.83MB - Executes via pure WASI | ||
cdd-ts |
TypeScript | Client; Client CLI; Server | Auto-Admin UI; Angular; React; Vue; fetch; Axios; Node.js | Swagger 2.0 & OpenAPI 3.2.0 | ✅ Supported | 14.68MB - Executes via WASI (Node.js polyfilled) |
Note: See cdd_docs_prompt.md and TO_DOCS_JSON.md in this repository for the system prompts used to unify documentation and CLI interfaces across the entire cdd-* ecosystem.
In addition to CLI and server modes, the project includes cdd-ctl-wasm-sdk, a pure-JavaScript WASI-compatible execution environment. This allows you to evaluate your OpenAPI generation schemas directly in the browser. You can run any of our 12 fully supported cdd-* WASM binaries (C, C++, C#, Go, Java, Kotlin, PHP, Python, Ruby, Rust, Swift, TypeScript) entirely client-side, with no backend communication required.
Heavy-VM runtimes gracefully degrade to using JSON-RPC over HTTP rather than running locally in the browser.
For detailed guides on configuring cdd-ctl and utilizing the cdd-* architecture, please refer to our comprehensive documentation:
You can launch the API gateway and daemon manager locally using Cargo:
# Native dependencies mode (REST interface)
cargo run --bin cdd-ctl --release -- --bind 0.0.0.0:8080 --config ./config.json
# WASM mode (runs compiled WASM binaries via wasmtime, REST interface)
cargo run --bin cdd-ctl-wasm --release -- --bind 0.0.0.0:8081 --config ./config.json
# JSON-RPC Native dependencies mode (JSON-RPC over HTTP)
cargo run --bin cdd-rpc --release -- --bind 0.0.0.0:8082 --config ./config.json
# JSON-RPC WASM mode (runs compiled WASM binaries via wasmtime, JSON-RPC over HTTP)
cargo run --bin cdd-rpc-wasm --release -- --bind 0.0.0.0:8083 --config ./config.jsonOnce the server is running, the interactive OpenAPI documentation and sandbox will be available at:
http://localhost:8080/swagger-ui/
This project is dual-licensed under either of the following, at your option:
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or https://opensource.org/licenses/MIT)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.