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.
- 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-webframework. - Database & ORM: Robust PostgreSQL data modeling using
dieselto manage organizations, users, repositories, and releases. - GitHub Integration: Seamlessly supports GitHub OAuth, webhooks, and automated secret management using Libsodium.
- Authentication: Secure JWT-based
Bearerauthentication, 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 usingutoipa. - 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 | OpenAPI Standard | CI Status | Browser/WASI | WASM Notes |
|---|---|---|---|---|---|---|---|
cdd-c |
C (C89) | Client; Client CLI; Server | FFI | OpenAPI 3.2.0 | ✅ Supported | 0.83MB - Executes via pure WASI | |
cdd-cpp |
C++ | Client; Client CLI; Server | Upgrades Swagger & Google Discovery to OpenAPI 3.2.0 | Swagger 2.0 until OpenAPI 3.2.0 | ✅ Supported | 0.62MB - Executes via pure WASI | |
cdd-csharp |
C# | Client; Client CLI; Server | CLR | OpenAPI 3.2.0 | ✅ Supported | 25.76MB - Executes via pure WASI (Wasi.Sdk) | |
cdd-go |
Go | Client; Client CLI; Server | OpenAPI 3.2.0 | ✅ Supported | 13.31MB - Executes via pure WASI | ||
cdd-java |
Java | Client; Client CLI; Server | OpenAPI 3.2.0 | ✅ Supported | 10.40MB - Executes via pure WASI (GraalVM native-image) | ||
cdd-kotlin |
Kotlin (ktor for Multiplatform) | Client; Client CLI; Server | Auto-Admin UI | OpenAPI 3.2.0 | ✅ Supported | 0.01MB - Executes via pure WASI | |
cdd-php |
PHP | Client; Client CLI; Server | OpenAPI 3.2.0 | ✅ Supported | 5.96MB - Executes via pure WASI | ||
cdd-python-all |
Python | Client; Client CLI; Server | OpenAPI 3.2.0 | ✅ Supported | 48.05MB - Executes via WASI (py2wasm) | ||
cdd-ruby |
Ruby | Client; Client CLI; Server | OpenAPI 3.2.0 | ✅ Supported | 51.19MB - Executes via WASI (rbwasm) | ||
cdd-rust |
Rust | Client; Client CLI; Server | OpenAPI 3.2.0 | ✅ Supported | 6.70MB - Executes via pure WASI | ||
cdd-sh |
Shell (/bin/sh) | Client; Client CLI; Server | OpenAPI 3.2.0 | 🔴 N/A | Not applicable for Shell | ||
cdd-swift |
Swift | Client; Client CLI; Server | OpenAPI 3.2.0 | ✅ Supported | 91.33MB - Executes via pure WASI | ||
cdd-ts |
TypeScript | Client; Client CLI; Server | Auto-Admin UI; Angular; fetch; Axios; Node.js | OpenAPI 3.2.0 & Swagger 2 | ✅ Supported | 138.36MB - 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.