Skip to main content

Supported Languages

ArchGraph supports 11 programming languages with varying levels of call resolution.

Language support matrix

LanguageParserCall ResolutionRequirements
TypeScripttree-sitterSCIP (compiler-backed)Node.js
JavaScripttree-sitterSCIP (compiler-backed)Node.js
Pythontree-sitterSCIP (compiler-backed)Node.js
Rusttree-sitterSCIP (compiler-backed)Rust toolchain
Gotree-sitterSCIP (compiler-backed)Go toolchain
Javatree-sitterSCIP (compiler-backed)JDK
Kotlintree-sitterSCIP (compiler-backed)JDK
Ctree-sitterSCIP (scip-clang)Linux/macOS
C++tree-sitterSCIP (scip-clang)Linux/macOS
Swifttree-sitterHeuristic (name-based)--
Objective-Ctree-sitterHeuristic (name-based)--

Resolution methods

SCIP (compiler-backed): Uses compiler indexes for precise, cross-file call resolution. Available on Pro and Enterprise plans.

Heuristic (name-based): Matches function calls by name. Works without compiler toolchains but may produce false positives for common names.

What gets extracted

For each language, ArchGraph extracts:

  • Functions -- declarations, parameters, return types
  • Classes -- inheritance, methods, properties
  • Modules/Files -- imports, exports, dependencies
  • Calls -- function-to-function call edges
  • Contains -- structural nesting (class contains method, file contains class)
  • Security labels -- input sources, dangerous sinks, crypto operations