codeatlas-rs 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. codeatlas_rs-0.1.0/CHANGELOG.md +44 -0
  2. codeatlas_rs-0.1.0/Cargo.lock +588 -0
  3. codeatlas_rs-0.1.0/Cargo.toml +29 -0
  4. codeatlas_rs-0.1.0/LICENSE +21 -0
  5. codeatlas_rs-0.1.0/NOTICE +8 -0
  6. codeatlas_rs-0.1.0/PKG-INFO +95 -0
  7. codeatlas_rs-0.1.0/README.md +79 -0
  8. codeatlas_rs-0.1.0/crates/core/Cargo.toml +28 -0
  9. codeatlas_rs-0.1.0/crates/core/src/analysis.rs +515 -0
  10. codeatlas_rs-0.1.0/crates/core/src/clustering.rs +225 -0
  11. codeatlas_rs-0.1.0/crates/core/src/discovery.rs +193 -0
  12. codeatlas_rs-0.1.0/crates/core/src/extract/go.rs +457 -0
  13. codeatlas_rs-0.1.0/crates/core/src/extract/mod.rs +77 -0
  14. codeatlas_rs-0.1.0/crates/core/src/extract/python.rs +562 -0
  15. codeatlas_rs-0.1.0/crates/core/src/extract/rust.rs +512 -0
  16. codeatlas_rs-0.1.0/crates/core/src/extract/typescript.rs +796 -0
  17. codeatlas_rs-0.1.0/crates/core/src/fingerprint.rs +103 -0
  18. codeatlas_rs-0.1.0/crates/core/src/lib.rs +20 -0
  19. codeatlas_rs-0.1.0/crates/core/src/model.rs +149 -0
  20. codeatlas_rs-0.1.0/crates/core/src/pipeline.rs +639 -0
  21. codeatlas_rs-0.1.0/crates/core/src/testutil.rs +34 -0
  22. codeatlas_rs-0.1.0/crates/core/tests/fixtures/sample_repo/app/main.py +8 -0
  23. codeatlas_rs-0.1.0/crates/core/tests/fixtures/sample_repo/app/util.py +8 -0
  24. codeatlas_rs-0.1.0/crates/core/tests/fixtures/sample_repo/core/engine.py +6 -0
  25. codeatlas_rs-0.1.0/crates/core/tests/fixtures/sample_repo/lib/handler.go +9 -0
  26. codeatlas_rs-0.1.0/crates/core/tests/fixtures/sample_repo/lib/mod.rs +5 -0
  27. codeatlas_rs-0.1.0/crates/core/tests/fixtures/sample_repo/web/index.js +4 -0
  28. codeatlas_rs-0.1.0/crates/core/tests/fixtures/sample_repo/web/service.ts +9 -0
  29. codeatlas_rs-0.1.0/crates/core/tests/fixtures/sample_repo.analysis.golden.json +314 -0
  30. codeatlas_rs-0.1.0/crates/core/tests/golden.rs +33 -0
  31. codeatlas_rs-0.1.0/crates/py/Cargo.toml +17 -0
  32. codeatlas_rs-0.1.0/crates/py/src/lib.rs +66 -0
  33. codeatlas_rs-0.1.0/pyproject.toml +33 -0
  34. codeatlas_rs-0.1.0/python/codeatlas_rs/__init__.py +23 -0
  35. codeatlas_rs-0.1.0/python/codeatlas_rs/cli.py +138 -0
  36. codeatlas_rs-0.1.0/python/codeatlas_rs/llm.py +192 -0
  37. codeatlas_rs-0.1.0/python/codeatlas_rs/render/__init__.py +175 -0
  38. codeatlas_rs-0.1.0/python/codeatlas_rs/render/html.py +102 -0
  39. codeatlas_rs-0.1.0/python/codeatlas_rs/render/markdown.py +70 -0
  40. codeatlas_rs-0.1.0/python/codeatlas_rs/render/mdx.py +23 -0
  41. codeatlas_rs-0.1.0/python/codeatlas_rs/render/rst.py +36 -0
@@ -0,0 +1,44 @@
1
+ # Changelog
2
+
3
+ All notable changes to CodeAtlas are documented here. The format follows
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project uses
5
+ [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ ### Added
10
+ - Deterministic analysis core in Rust: repository discovery (gitignore +
11
+ `.codeatlasignore`), content fingerprinting, and tree-sitter extraction
12
+ for **Python**, **Rust**, **Go**, and **JavaScript/TypeScript** (symbols,
13
+ qualified names, calls, imports, class/receiver hierarchies, cross-file
14
+ unique-name call resolution). `.ts`/`.tsx` are auto-disambiguated by re-parsing
15
+ with whichever grammar produces fewer parse errors.
16
+ - Deterministic directory-based component clustering with hierarchical component
17
+ ids and per-scope (lowest-common-ancestor) relations.
18
+ - Schema-compatible `analysis.json` output plus `fingerprint.json` and
19
+ `file_coverage.json` sidecars.
20
+ - Python package (`codeatlas-rs`, import `codeatlas_rs`) distributed via maturin/PyPI, with `codeatlas`
21
+ and `codeatlas-render` CLIs.
22
+ - Renderers for Markdown + Mermaid, HTML (Cytoscape.js), MDX, and
23
+ reStructuredText, with a render manifest that reconciles stale files and
24
+ refuses to overwrite unowned files.
25
+ - Optional LLM component naming via OpenAI-compatible endpoints, with auth/quota
26
+ exit codes (2/3) and deterministic-name fallback (ADR-0006).
27
+ - Security hardening: symlink and oversize-file skipping; hostile-content tests.
28
+ - `codeatlas-bundle` (new `packages/codeatlas-bundle`): a pure-Python package that
29
+ runs the analysis, renders docs, and commits them into a repository, with
30
+ `init`/`build`/`check` commands and a `codeatlas.json` opt-in file.
31
+ - `analyze()` accepts `ignore_paths` so generated output directories can be
32
+ excluded from discovery.
33
+
34
+ ### Changed
35
+ - Relations are scoped to their owning (lowest-common-ancestor) component rather
36
+ than flattened to the root scope.
37
+
38
+ ### Known limitations
39
+ - Tree-sitter resolution is intentionally simpler than an LSP pipeline;
40
+ see `docs/audit/KNOWN_GAPS.md`.
41
+ - Clustering is a simplified deterministic directory partition (full
42
+ affinity/kinship + TreeSpec replay deferred to incremental support).
43
+ - Java, PHP, C#, and Kotlin parsers not yet implemented (recognized in
44
+ discovery, recorded as `unsupported_language` in coverage).
@@ -0,0 +1,588 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 3
4
+
5
+ [[package]]
6
+ name = "aho-corasick"
7
+ version = "1.1.5"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
10
+ dependencies = [
11
+ "memchr",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "block-buffer"
16
+ version = "0.10.4"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
19
+ dependencies = [
20
+ "generic-array",
21
+ ]
22
+
23
+ [[package]]
24
+ name = "bstr"
25
+ version = "1.13.1"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "6bb31b46c14244e20ee9984b11bf5c992b91fb6939fea616e3512c8baecdbe5f"
28
+ dependencies = [
29
+ "memchr",
30
+ "serde_core",
31
+ ]
32
+
33
+ [[package]]
34
+ name = "cc"
35
+ version = "1.8.0"
36
+ source = "registry+https://github.com/rust-lang/crates.io-index"
37
+ checksum = "6651c9ed80effdc7db0ff72512157f901af5e3549e341e24b1dd4887d836d838"
38
+ dependencies = [
39
+ "find-msvc-tools",
40
+ "shlex",
41
+ ]
42
+
43
+ [[package]]
44
+ name = "cfg-if"
45
+ version = "1.0.5"
46
+ source = "registry+https://github.com/rust-lang/crates.io-index"
47
+ checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
48
+
49
+ [[package]]
50
+ name = "codeatlas-core"
51
+ version = "0.1.0"
52
+ dependencies = [
53
+ "ignore",
54
+ "serde",
55
+ "serde_json",
56
+ "sha2",
57
+ "thiserror",
58
+ "tree-sitter",
59
+ "tree-sitter-go",
60
+ "tree-sitter-javascript",
61
+ "tree-sitter-python",
62
+ "tree-sitter-rust",
63
+ "tree-sitter-typescript",
64
+ ]
65
+
66
+ [[package]]
67
+ name = "codeatlas-py"
68
+ version = "0.1.0"
69
+ dependencies = [
70
+ "codeatlas-core",
71
+ "pyo3",
72
+ "serde_json",
73
+ ]
74
+
75
+ [[package]]
76
+ name = "cpufeatures"
77
+ version = "0.2.17"
78
+ source = "registry+https://github.com/rust-lang/crates.io-index"
79
+ checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
80
+ dependencies = [
81
+ "libc",
82
+ ]
83
+
84
+ [[package]]
85
+ name = "crossbeam-deque"
86
+ version = "0.8.8"
87
+ source = "registry+https://github.com/rust-lang/crates.io-index"
88
+ checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a"
89
+ dependencies = [
90
+ "crossbeam-epoch",
91
+ "crossbeam-utils",
92
+ ]
93
+
94
+ [[package]]
95
+ name = "crossbeam-epoch"
96
+ version = "0.9.21"
97
+ source = "registry+https://github.com/rust-lang/crates.io-index"
98
+ checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d"
99
+ dependencies = [
100
+ "crossbeam-utils",
101
+ ]
102
+
103
+ [[package]]
104
+ name = "crossbeam-utils"
105
+ version = "0.8.23"
106
+ source = "registry+https://github.com/rust-lang/crates.io-index"
107
+ checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6"
108
+
109
+ [[package]]
110
+ name = "crypto-common"
111
+ version = "0.1.7"
112
+ source = "registry+https://github.com/rust-lang/crates.io-index"
113
+ checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
114
+ dependencies = [
115
+ "generic-array",
116
+ "typenum",
117
+ ]
118
+
119
+ [[package]]
120
+ name = "digest"
121
+ version = "0.10.7"
122
+ source = "registry+https://github.com/rust-lang/crates.io-index"
123
+ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
124
+ dependencies = [
125
+ "block-buffer",
126
+ "crypto-common",
127
+ ]
128
+
129
+ [[package]]
130
+ name = "equivalent"
131
+ version = "1.0.3"
132
+ source = "registry+https://github.com/rust-lang/crates.io-index"
133
+ checksum = "00d174d5400e5e8fd687ad1049e2f578285fa914201b1af7e8b112a4546bd826"
134
+
135
+ [[package]]
136
+ name = "find-msvc-tools"
137
+ version = "0.1.14"
138
+ source = "registry+https://github.com/rust-lang/crates.io-index"
139
+ checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484"
140
+
141
+ [[package]]
142
+ name = "foldhash"
143
+ version = "0.2.0"
144
+ source = "registry+https://github.com/rust-lang/crates.io-index"
145
+ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
146
+
147
+ [[package]]
148
+ name = "generic-array"
149
+ version = "0.14.7"
150
+ source = "registry+https://github.com/rust-lang/crates.io-index"
151
+ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
152
+ dependencies = [
153
+ "typenum",
154
+ "version_check",
155
+ ]
156
+
157
+ [[package]]
158
+ name = "globset"
159
+ version = "0.4.20"
160
+ source = "registry+https://github.com/rust-lang/crates.io-index"
161
+ checksum = "07c34a9410465b45bd9787443bc7370f37735bad04b0f0cd57ff1a3186c98988"
162
+ dependencies = [
163
+ "aho-corasick",
164
+ "bstr",
165
+ "log",
166
+ "regex-automata",
167
+ "regex-syntax",
168
+ ]
169
+
170
+ [[package]]
171
+ name = "hashbrown"
172
+ version = "0.17.1"
173
+ source = "registry+https://github.com/rust-lang/crates.io-index"
174
+ checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
175
+
176
+ [[package]]
177
+ name = "heck"
178
+ version = "0.5.0"
179
+ source = "registry+https://github.com/rust-lang/crates.io-index"
180
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
181
+
182
+ [[package]]
183
+ name = "ignore"
184
+ version = "0.4.33"
185
+ source = "registry+https://github.com/rust-lang/crates.io-index"
186
+ checksum = "00b69833ed729dc5aa7d19541d96d6cf8e9137194207a04916d658e43168402f"
187
+ dependencies = [
188
+ "crossbeam-deque",
189
+ "globset",
190
+ "log",
191
+ "memchr",
192
+ "regex-automata",
193
+ "same-file",
194
+ "walkdir",
195
+ "winapi-util",
196
+ ]
197
+
198
+ [[package]]
199
+ name = "indexmap"
200
+ version = "2.14.2"
201
+ source = "registry+https://github.com/rust-lang/crates.io-index"
202
+ checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855"
203
+ dependencies = [
204
+ "equivalent",
205
+ "hashbrown",
206
+ ]
207
+
208
+ [[package]]
209
+ name = "itoa"
210
+ version = "1.0.18"
211
+ source = "registry+https://github.com/rust-lang/crates.io-index"
212
+ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
213
+
214
+ [[package]]
215
+ name = "libc"
216
+ version = "0.2.191"
217
+ source = "registry+https://github.com/rust-lang/crates.io-index"
218
+ checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a"
219
+
220
+ [[package]]
221
+ name = "log"
222
+ version = "0.4.34"
223
+ source = "registry+https://github.com/rust-lang/crates.io-index"
224
+ checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
225
+
226
+ [[package]]
227
+ name = "memchr"
228
+ version = "2.8.3"
229
+ source = "registry+https://github.com/rust-lang/crates.io-index"
230
+ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
231
+
232
+ [[package]]
233
+ name = "once_cell"
234
+ version = "1.21.4"
235
+ source = "registry+https://github.com/rust-lang/crates.io-index"
236
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
237
+
238
+ [[package]]
239
+ name = "portable-atomic"
240
+ version = "1.15.0"
241
+ source = "registry+https://github.com/rust-lang/crates.io-index"
242
+ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
243
+
244
+ [[package]]
245
+ name = "proc-macro2"
246
+ version = "1.0.107"
247
+ source = "registry+https://github.com/rust-lang/crates.io-index"
248
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
249
+ dependencies = [
250
+ "unicode-ident",
251
+ ]
252
+
253
+ [[package]]
254
+ name = "pyo3"
255
+ version = "0.30.1"
256
+ source = "registry+https://github.com/rust-lang/crates.io-index"
257
+ checksum = "229ca13b8a15bb0d1487b81ab975bfcd97513416499a8312011b6036e42e0de4"
258
+ dependencies = [
259
+ "libc",
260
+ "once_cell",
261
+ "portable-atomic",
262
+ "pyo3-build-config",
263
+ "pyo3-ffi",
264
+ "pyo3-macros",
265
+ ]
266
+
267
+ [[package]]
268
+ name = "pyo3-build-config"
269
+ version = "0.30.1"
270
+ source = "registry+https://github.com/rust-lang/crates.io-index"
271
+ checksum = "70130e2b6dd1ee589a8788026a429561ca5c40fa7a2fa7914c2282eddae24700"
272
+ dependencies = [
273
+ "target-lexicon",
274
+ ]
275
+
276
+ [[package]]
277
+ name = "pyo3-ffi"
278
+ version = "0.30.1"
279
+ source = "registry+https://github.com/rust-lang/crates.io-index"
280
+ checksum = "5e7ff73c555c286d212d4ce7e5fbda845a973c4f61bd5f160f5f2c3c2a04d1c4"
281
+ dependencies = [
282
+ "libc",
283
+ "pyo3-build-config",
284
+ ]
285
+
286
+ [[package]]
287
+ name = "pyo3-macros"
288
+ version = "0.30.1"
289
+ source = "registry+https://github.com/rust-lang/crates.io-index"
290
+ checksum = "c46d2e5862c7bb8207e3b639f713dda3c499933444784154c11d013c5a691b60"
291
+ dependencies = [
292
+ "proc-macro2",
293
+ "pyo3-macros-backend",
294
+ "quote",
295
+ "syn",
296
+ ]
297
+
298
+ [[package]]
299
+ name = "pyo3-macros-backend"
300
+ version = "0.30.1"
301
+ source = "registry+https://github.com/rust-lang/crates.io-index"
302
+ checksum = "38b89f066f2ae72a2aef52d1537ca2fcd104440ebfadee06e97aa90738a25b9b"
303
+ dependencies = [
304
+ "heck",
305
+ "proc-macro2",
306
+ "quote",
307
+ "syn",
308
+ ]
309
+
310
+ [[package]]
311
+ name = "quote"
312
+ version = "1.0.47"
313
+ source = "registry+https://github.com/rust-lang/crates.io-index"
314
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
315
+ dependencies = [
316
+ "proc-macro2",
317
+ ]
318
+
319
+ [[package]]
320
+ name = "regex"
321
+ version = "1.13.1"
322
+ source = "registry+https://github.com/rust-lang/crates.io-index"
323
+ checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
324
+ dependencies = [
325
+ "aho-corasick",
326
+ "memchr",
327
+ "regex-automata",
328
+ "regex-syntax",
329
+ ]
330
+
331
+ [[package]]
332
+ name = "regex-automata"
333
+ version = "0.4.18"
334
+ source = "registry+https://github.com/rust-lang/crates.io-index"
335
+ checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
336
+ dependencies = [
337
+ "aho-corasick",
338
+ "memchr",
339
+ "regex-syntax",
340
+ ]
341
+
342
+ [[package]]
343
+ name = "regex-syntax"
344
+ version = "0.8.11"
345
+ source = "registry+https://github.com/rust-lang/crates.io-index"
346
+ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
347
+
348
+ [[package]]
349
+ name = "same-file"
350
+ version = "1.0.6"
351
+ source = "registry+https://github.com/rust-lang/crates.io-index"
352
+ checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
353
+ dependencies = [
354
+ "winapi-util",
355
+ ]
356
+
357
+ [[package]]
358
+ name = "serde"
359
+ version = "1.0.229"
360
+ source = "registry+https://github.com/rust-lang/crates.io-index"
361
+ checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
362
+ dependencies = [
363
+ "serde_core",
364
+ "serde_derive",
365
+ ]
366
+
367
+ [[package]]
368
+ name = "serde_core"
369
+ version = "1.0.229"
370
+ source = "registry+https://github.com/rust-lang/crates.io-index"
371
+ checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
372
+ dependencies = [
373
+ "serde_derive",
374
+ ]
375
+
376
+ [[package]]
377
+ name = "serde_derive"
378
+ version = "1.0.229"
379
+ source = "registry+https://github.com/rust-lang/crates.io-index"
380
+ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
381
+ dependencies = [
382
+ "proc-macro2",
383
+ "quote",
384
+ "syn",
385
+ ]
386
+
387
+ [[package]]
388
+ name = "serde_json"
389
+ version = "1.0.154"
390
+ source = "registry+https://github.com/rust-lang/crates.io-index"
391
+ checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6"
392
+ dependencies = [
393
+ "foldhash",
394
+ "indexmap",
395
+ "itoa",
396
+ "memchr",
397
+ "serde",
398
+ "serde_core",
399
+ "zmij",
400
+ ]
401
+
402
+ [[package]]
403
+ name = "sha2"
404
+ version = "0.10.9"
405
+ source = "registry+https://github.com/rust-lang/crates.io-index"
406
+ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
407
+ dependencies = [
408
+ "cfg-if",
409
+ "cpufeatures",
410
+ "digest",
411
+ ]
412
+
413
+ [[package]]
414
+ name = "shlex"
415
+ version = "2.0.1"
416
+ source = "registry+https://github.com/rust-lang/crates.io-index"
417
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
418
+
419
+ [[package]]
420
+ name = "streaming-iterator"
421
+ version = "0.1.9"
422
+ source = "registry+https://github.com/rust-lang/crates.io-index"
423
+ checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520"
424
+
425
+ [[package]]
426
+ name = "syn"
427
+ version = "3.0.9"
428
+ source = "registry+https://github.com/rust-lang/crates.io-index"
429
+ checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b"
430
+ dependencies = [
431
+ "proc-macro2",
432
+ "quote",
433
+ "unicode-ident",
434
+ ]
435
+
436
+ [[package]]
437
+ name = "target-lexicon"
438
+ version = "0.13.5"
439
+ source = "registry+https://github.com/rust-lang/crates.io-index"
440
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
441
+
442
+ [[package]]
443
+ name = "thiserror"
444
+ version = "2.0.21"
445
+ source = "registry+https://github.com/rust-lang/crates.io-index"
446
+ checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e"
447
+ dependencies = [
448
+ "thiserror-impl",
449
+ ]
450
+
451
+ [[package]]
452
+ name = "thiserror-impl"
453
+ version = "2.0.21"
454
+ source = "registry+https://github.com/rust-lang/crates.io-index"
455
+ checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524"
456
+ dependencies = [
457
+ "proc-macro2",
458
+ "quote",
459
+ "syn",
460
+ ]
461
+
462
+ [[package]]
463
+ name = "tree-sitter"
464
+ version = "0.25.10"
465
+ source = "registry+https://github.com/rust-lang/crates.io-index"
466
+ checksum = "78f873475d258561b06f1c595d93308a7ed124d9977cb26b148c2084a4a3cc87"
467
+ dependencies = [
468
+ "cc",
469
+ "regex",
470
+ "regex-syntax",
471
+ "serde_json",
472
+ "streaming-iterator",
473
+ "tree-sitter-language",
474
+ ]
475
+
476
+ [[package]]
477
+ name = "tree-sitter-go"
478
+ version = "0.25.0"
479
+ source = "registry+https://github.com/rust-lang/crates.io-index"
480
+ checksum = "c8560a4d2f835cc0d4d2c2e03cbd0dde2f6114b43bc491164238d333e28b16ea"
481
+ dependencies = [
482
+ "cc",
483
+ "tree-sitter-language",
484
+ ]
485
+
486
+ [[package]]
487
+ name = "tree-sitter-javascript"
488
+ version = "0.25.0"
489
+ source = "registry+https://github.com/rust-lang/crates.io-index"
490
+ checksum = "68204f2abc0627a90bdf06e605f5c470aa26fdcb2081ea553a04bdad756693f5"
491
+ dependencies = [
492
+ "cc",
493
+ "tree-sitter-language",
494
+ ]
495
+
496
+ [[package]]
497
+ name = "tree-sitter-language"
498
+ version = "0.1.9"
499
+ source = "registry+https://github.com/rust-lang/crates.io-index"
500
+ checksum = "d0af592be68c579aa78a16846bd19422978c3c52e438523d45ff5d1bff1f9d4a"
501
+
502
+ [[package]]
503
+ name = "tree-sitter-python"
504
+ version = "0.25.0"
505
+ source = "registry+https://github.com/rust-lang/crates.io-index"
506
+ checksum = "6bf85fd39652e740bf60f46f4cda9492c3a9ad75880575bf14960f775cb74a1c"
507
+ dependencies = [
508
+ "cc",
509
+ "tree-sitter-language",
510
+ ]
511
+
512
+ [[package]]
513
+ name = "tree-sitter-rust"
514
+ version = "0.24.2"
515
+ source = "registry+https://github.com/rust-lang/crates.io-index"
516
+ checksum = "439e577dbe07423ec2582ac62c7531120dbfccfa6e5f92406f93dd271a120e45"
517
+ dependencies = [
518
+ "cc",
519
+ "tree-sitter-language",
520
+ ]
521
+
522
+ [[package]]
523
+ name = "tree-sitter-typescript"
524
+ version = "0.23.2"
525
+ source = "registry+https://github.com/rust-lang/crates.io-index"
526
+ checksum = "6c5f76ed8d947a75cc446d5fccd8b602ebf0cde64ccf2ffa434d873d7a575eff"
527
+ dependencies = [
528
+ "cc",
529
+ "tree-sitter-language",
530
+ ]
531
+
532
+ [[package]]
533
+ name = "typenum"
534
+ version = "1.20.1"
535
+ source = "registry+https://github.com/rust-lang/crates.io-index"
536
+ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
537
+
538
+ [[package]]
539
+ name = "unicode-ident"
540
+ version = "1.0.27"
541
+ source = "registry+https://github.com/rust-lang/crates.io-index"
542
+ checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563"
543
+
544
+ [[package]]
545
+ name = "version_check"
546
+ version = "0.9.5"
547
+ source = "registry+https://github.com/rust-lang/crates.io-index"
548
+ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
549
+
550
+ [[package]]
551
+ name = "walkdir"
552
+ version = "2.5.0"
553
+ source = "registry+https://github.com/rust-lang/crates.io-index"
554
+ checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
555
+ dependencies = [
556
+ "same-file",
557
+ "winapi-util",
558
+ ]
559
+
560
+ [[package]]
561
+ name = "winapi-util"
562
+ version = "0.1.11"
563
+ source = "registry+https://github.com/rust-lang/crates.io-index"
564
+ checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
565
+ dependencies = [
566
+ "windows-sys",
567
+ ]
568
+
569
+ [[package]]
570
+ name = "windows-link"
571
+ version = "0.2.1"
572
+ source = "registry+https://github.com/rust-lang/crates.io-index"
573
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
574
+
575
+ [[package]]
576
+ name = "windows-sys"
577
+ version = "0.61.2"
578
+ source = "registry+https://github.com/rust-lang/crates.io-index"
579
+ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
580
+ dependencies = [
581
+ "windows-link",
582
+ ]
583
+
584
+ [[package]]
585
+ name = "zmij"
586
+ version = "1.0.23"
587
+ source = "registry+https://github.com/rust-lang/crates.io-index"
588
+ checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
@@ -0,0 +1,29 @@
1
+ [workspace]
2
+ resolver = "2"
3
+ members = ["crates/core", "crates/py"]
4
+
5
+ [workspace.package]
6
+ version = "0.1.0"
7
+ edition = "2021"
8
+ license = "MIT"
9
+ rust-version = "1.80"
10
+ repository = "https://github.com/Mullassery/CodeAtlas"
11
+
12
+ [workspace.dependencies]
13
+ serde = { version = "1", features = ["derive"] }
14
+ serde_json = "1"
15
+ thiserror = "2"
16
+ sha2 = "0.10"
17
+ ignore = "0.4"
18
+ tree-sitter = "0.25"
19
+ tree-sitter-python = "0.25"
20
+ tree-sitter-rust = "0.24"
21
+ tree-sitter-go = "0.25"
22
+ tree-sitter-javascript = "0.25"
23
+ tree-sitter-typescript = "0.23"
24
+ pyo3 = { version = "0.30", features = ["abi3-py39"] }
25
+
26
+ [profile.release]
27
+ lto = "thin"
28
+ codegen-units = 1
29
+ strip = true
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Mullassery
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,8 @@
1
+ CodeAtlas
2
+
3
+ Copyright (c) 2026 Mullassery. Licensed under the MIT License (see LICENSE).
4
+
5
+ CodeAtlas is an independent, Rust-native implementation of codebase architecture
6
+ analysis. It is a standalone project: its analysis pipeline, data model, and
7
+ documentation tooling are its own, and it contains no third-party project source
8
+ code or documentation prose.