The codeanalyzer backends
Source parsing, symbol resolution, and call-graph construction are performed by standalone language analyzers, one per language, collectively the codeanalyzer-* backends. Each backend emits typed JSON, and the SDK deserializes it into queryable models.
flowchart LR
SDK["CLDK Python SDK<br/>(analysis API)"] -->|invokes| CAJ["codeanalyzer-java<br/>(JVM · WALA)"]
SDK -->|invokes| CAP["codeanalyzer-python<br/>(Jedi · CodeQL)"]
SDK -->|invokes| CAT["codeanalyzer-ts<br/>(TS compiler)"]
CAJ -->|canonical JSON| SDK
CAP -->|canonical JSON| SDK
CAT -->|canonical JSON| SDK
This separation lets a single analysis API span languages. The SDK does not parse code itself; it invokes the appropriate backend, then maps the backend JSON onto typed models (JApplication, PyModule, and others). A backend that emits the canonical JSON makes its language available to the SDK with only binding work required. See Add a language backend.
This is the backend layer. For the SDKs that consume it, see the SDKs overview.
Maturity tiers
Section titled “Maturity tiers”Mature production-ready · Beta stable core, gaps remain · Medium usable, gaps remain · Help wanted contributors wanted · Stub not started
Backends (analyzers)
Section titled “Backends (analyzers)”The codeanalyzer-* tools parse a language and serialize the canonical symbol-table and call-graph schema that every frontend reads.
| Language | Analyzer | Maturity |
|---|---|---|
| Java | codeanalyzer-java | Mature |
| Python | codeanalyzer-python | Mature |
| TypeScript | codeanalyzer-ts | Beta |
| JavaScript | via codeanalyzer-ts | Medium |
| Go | Not started | Help wanted Stub |
| Rust | Not started | Help wanted Stub |
| C | Not started | Help wanted Stub |
| C++ | Not started | Help wanted Stub |
| C# | Not started | Help wanted Stub |