You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/docs/backends.mdx
+25-3Lines changed: 25 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: The codeanalyzer backends
3
3
description: "CLDK is a thin Python frontend over a family of standalone language analyzers: the codeanalyzer-* backends. Here's how that split works and where each one lives."
The Python SDK you call is deliberately thin. The heavy lifting (parsing source, resolving symbols, building call graphs) happens in a family of **standalone language analyzers**, one per language, collectively the `codeanalyzer-*` backends. Each one emits the same shape of typed JSON, and the SDK facade deserializes it into the models you query.
9
9
@@ -23,11 +23,33 @@ This separation is what lets one `analysis` API span languages: the facade never
23
23
The SDK manages the backend for you: auto-downloading the Java JAR, provisioning the Python analyzer in a virtualenv. These pages are for when you want to understand (or contribute to) what's happening underneath.
24
24
</Aside>
25
25
26
-
## The backends
26
+
This is the **backend** layer. For the SDKs that consume it, see the [SDKs overview](/reference/sdks/).
27
+
28
+
## Maturity tiers
29
+
30
+
<Badgetext="Mature"variant="success" /> production-ready · <Badgetext="Medium"variant="tip" /> usable, gaps remain · <Badgetext="Help wanted"variant="danger" /> contributors wanted · <Badgetext="Stub"variant="default" /> not started
31
+
32
+
## Backends (analyzers)
33
+
34
+
The `codeanalyzer-*` tools that parse a language and serialize the canonical symbol-table and call-graph schema every frontend reads.
|**JavaScript**| via [codeanalyzer-ts](/backends/codeanalyzer-ts/)| <Badgetext="Medium"variant="tip" /> |
42
+
|**Go**| Not started | <Badgetext="Help wanted"variant="danger" /> <Badgetext="Stub"variant="default" /> |
43
+
|**Rust**| Not started | <Badgetext="Help wanted"variant="danger" /> <Badgetext="Stub"variant="default" /> |
44
+
|**C**| Not started | <Badgetext="Help wanted"variant="danger" /> <Badgetext="Stub"variant="default" /> |
45
+
|**C++**| Not started | <Badgetext="Help wanted"variant="danger" /> <Badgetext="Stub"variant="default" /> |
46
+
|**C#**| Not started | <Badgetext="Help wanted"variant="danger" /> <Badgetext="Stub"variant="default" /> |
47
+
48
+
## Built backends
27
49
28
50
<CardGrid>
29
51
<LinkCardtitle="codeanalyzer-python"description="Jedi-based semantic analysis with optional CodeQL call-graph augmentation; ships the canonical Py* schema."href="/backends/codeanalyzer-python/" />
30
52
<LinkCardtitle="codeanalyzer-java"description="The deepest backend: WALA + Javaparser, producing symbol tables, call graphs, hierarchy, and CRUD analysis."href="/backends/codeanalyzer-java/" />
31
53
<LinkCardtitle="codeanalyzer-ts"description="The TypeScript analyzer: the backend exists today; Python SDK support is on the way."href="/backends/codeanalyzer-ts/" />
32
-
<LinkCardtitle="codeanalyzer-go"description="Coming soon. A planned Go analyzer that emits the same canonical analysis JSON."href="/backends/codeanalyzer-go/" />
54
+
<LinkCardtitle="Add a backend"description="Help wanted. Go, Rust, C, C++, and C# are unbuilt. A backend that speaks the canonical JSON lights the language up across every SDK."href="/contributing/add-language-backend/" />
Copy file name to clipboardExpand all lines: src/content/docs/reference/python-api/core.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -114,6 +114,8 @@ The full generated reference follows.
114
114
115
115
<!-- AUTO-GENERATED by scripts/gen_api_docs.py, do not edit by hand. -->
116
116
117
+
[](https://github.com/codellm-devkit/python-sdk)
Copy file name to clipboardExpand all lines: src/content/docs/reference/python-api/index.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@ title: Python API Reference
3
3
description: "The CLDK Python SDK: the CLDK factory, the per-language analysis facades, and the typed data models they return."
4
4
---
5
5
6
+
[](https://github.com/codellm-devkit/python-sdk)
7
+
6
8
Every CLDK program follows the same shape: construct a `CLDK` object for a
7
9
language, ask it for an `analysis` facade over your project, then call typed
Copy file name to clipboardExpand all lines: src/content/docs/reference/python-api/java.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,6 +85,8 @@ follows.
85
85
86
86
<!-- AUTO-GENERATED by scripts/gen_api_docs.py, do not edit by hand. -->
87
87
88
+
[](https://github.com/codellm-devkit/python-sdk)
Copy file name to clipboardExpand all lines: src/content/docs/reference/python-api/python.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,6 +109,8 @@ follows.
109
109
110
110
<!-- AUTO-GENERATED by scripts/gen_api_docs.py, do not edit by hand. -->
111
111
112
+
[](https://github.com/codellm-devkit/python-sdk)
description: "CLDK frontends (language SDKs) and backends (codeanalyzer-* analyzers), with a per-layer maturity tier for each language. Every SDK consumes the same canonical analysis JSON the backends emit."
3
+
description: "CLDK frontends (the language SDKs you write against), with a maturity tier for each. Every SDK consumes the same canonical analysis JSON the codeanalyzer backends emit."
A CLDK **SDK** (a *frontend*) is an ergonomic `analysis` API over the canonical JSON that the [codeanalyzer backends](/backends/) produce. Because the backends do all the language analysis, every SDK inherits every backend for free: the same call graphs, symbol tables, and reachability, exposed through the idioms of your language.
9
9
10
-
## Maturity tiers
10
+
This is the **frontend** layer. For the analyzers behind it, see the [backends overview](/backends/).
11
11
12
-
CLDK has two layers, each tracked independently: **frontends** (language SDKs that expose the `analysis` API) and **backends** (the `codeanalyzer-*` analyzers that emit the canonical JSON).
description="Coming soon. A planned Rust frontend; see the roadmap and starting points for how a second native SDK inherits every backend."
42
+
title="Add a frontend"
43
+
description="Help wanted. A new frontend inherits every backend for free; see the roadmap and starting points for a native SDK."
60
44
href="/contributing/rust-frontend/"
61
45
/>
62
-
<LinkCard
63
-
title="Go SDK"
64
-
description="Coming soon. A planned Go frontend over the same canonical analysis JSON."
65
-
href="/reference/go-sdk/"
66
-
/>
67
46
</CardGrid>
68
47
69
48
<Asidetype="tip"title="Adding a language pack">
@@ -78,4 +57,4 @@ Each SDK speaks the same `analysis` vocabulary because they all read the one sch
78
57
- The core methods (`get_symbol_table`, `get_call_graph`, `get_callers`, `get_callees`, and friends) return the same typed models.
79
58
- Adding a backend lights the new language up across **every** SDK at once.
80
59
81
-
The [Python SDK](/reference/python-api/) is stable and the place to start. The [TypeScript SDK](https://github.com/codellm-devkit/typescript-sdk) is experimental and evolving. A Rust frontend is on the roadmap, see [Add a Rust frontend](/contributing/rust-frontend/) for the design.
60
+
The [Python SDK](/reference/python-api/) is stable and the place to start. The [TypeScript SDK](https://github.com/codellm-devkit/typescript-sdk) is experimental and evolving. The Java, Rust, and Go frontends are unbuilt: see [Add a Rust frontend](/contributing/rust-frontend/) for the shape a native SDK takes.
0 commit comments