SDKs
A CLDK SDK (a frontend) is an analysis API over the canonical JSON that the codeanalyzer backends produce. Because the backends perform the language analysis, each SDK exposes the same call graphs, symbol tables, and reachability data in its host language.
This is the frontend layer. For the analyzers behind it, see the backends overview.
Maturity tiers
Section titled “Maturity tiers”Mature production-ready · Alpha experimental · Help wanted contributors wanted · Stub not started
Frontends (SDKs)
Section titled “Frontends (SDKs)”The SDK you write against. Each is an analysis API over the canonical JSON.
| SDK | Repository | Maturity |
|---|---|---|
| Python | codellm-devkit/python-sdk | Mature |
| TypeScript | codellm-devkit/typescript-sdk | Alpha |
| Java | Not started | Help wanted Stub |
| Rust | Not started | Help wanted Stub |
| Go | Not started | Help wanted Stub |
Pick an SDK
Section titled “Pick an SDK”Same contract, every language
Section titled “Same contract, every language”Each SDK exposes the same analysis vocabulary because they all read the single schema the backends serialize:
- A per-language factory, e.g.
CLDK.java(project_path=...), constructs the analysis object. - The core methods (
get_symbol_table,get_call_graph,get_callers,get_callees, and related calls) return the same typed models. - Adding a backend makes the new language available to every SDK that consumes the shared schema.
The Python SDK is stable and the recommended starting point. The TypeScript SDK is experimental and evolving. The Java, Rust, and Go frontends are not yet built; see Add a Rust frontend for the form a native SDK takes.