| Language | Variants | Compilers | Extensions |
|---|---|---|---|
| C/C++ | C89, C99, C11, C17, C23, C++98, C++03, C++11, C++14, C++17, C++20, C++23 [1] [2] [3] | Clang (including clang-cl [4] and armclang) extensions (up to Clang 21), GNU extensions (up to GCC 15), Microsoft extensions (up to VS 2022), Arm Compiler 5 [5] |
.cpp, .c++, .cxx, .hpp, .hh, .h++, .hxx, .c, .cc, .h |
| C# | C# up to 14 [6] | Microsoft Visual Studio up to 2019 with .NET up to 4.8, .NET Core up to 3.1 .NET 5, .NET 6, .NET 7, .NET 8, .NET 9, .NET 10 [6] |
.sln, .slnx, .csproj, .cs, .cshtml, .xaml |
| GitHub Actions | Not applicable | Not applicable | .github/workflows/*.yml, .github/workflows/*.yaml, **/action.yml, **/action.yaml |
| Go (aka Golang) | Go up to 1.26 | Go 1.11 or more recent | .go |
| Java | Java 7 to 26 [7] | javac (OpenJDK and Oracle JDK), Eclipse compiler for Java (ECJ) [8] |
.java |
| Kotlin | Kotlin 1.8.0 to 2.3.2x | kotlinc | .kt |
| JavaScript | ECMAScript 2022 or lower | Not applicable | .js, .jsx, .mjs, .es, .es6, .htm, .html, .xhtm, .xhtml, .vue, .hbs, .ejs, .njk, .json, .yaml, .yml, .raml, .xml [9] |
| Python [10] | 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 | Not applicable | .py |
| Ruby [11] | up to 3.3 | Not applicable | .rb, .erb, .gemspec, Gemfile |
| Rust [12] | Rust editions 2021 and 2024 | Rust compiler | .rs, Cargo.toml |
| Swift [13] [14] | Swift 5.4-6.3 | Swift compiler | .swift |
| TypeScript [15] | 2.6-5.9 | Standard TypeScript compiler | .ts, .tsx, .mts, .cts |
| [1] | C++20 modules are not supported. |
| [2] | C23 and C++23 support is currently in beta. |
| [3] | Objective-C, Objective-C++, C++/CLI, and C++/CX are not supported. |
| [4] | Support for the clang-cl compiler is preliminary. |
| [5] | Support for the Arm Compiler (armcc) is preliminary. |
| [6] | (1, 2) Support for .NET 10 is preliminary and code that uses language features new to C# 14 is not yet fully supported for extraction and analysis. |
| [7] | Builds that execute on Java 7 to 26 can be analyzed. The analysis understands standard language features in Java 8 to 26; "preview" and "incubator" features are not supported. Source code using Java language versions older than Java 8 are analyzed as Java 8 code. |
| [8] | ECJ is supported when the build invokes it via the Maven Compiler plugin or the Takari Lifecycle plugin. |
| [9] | JSX and Flow code, YAML, JSON, HTML, and XML files may also be analyzed with JavaScript files. |
| [10] | The extractor requires Python 3 to run. To analyze Python 2.7 you should install both versions of Python. |
| [11] | Requires glibc 2.17. |
| [12] | Requires rustup and cargo to be installed. Features from nightly toolchains are not supported. |
| [13] | Support for the analysis of Swift requires macOS. |
| [14] | Embedded Swift is not supported. |
| [15] | TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default. |