CodeQL 文档

支持的语言和框架

查看 CodeQL 最新版本支持的语言、库和框架。

语言和编译器

CodeQL CLI 的当前版本 (变更日志, 版本)、CodeQL 库包 (源代码) 和 CodeQL 包 (版本) 支持以下语言和编译器。

语言 变体 编译器 扩展
C/C++ C89、C99、C11、C17、C++98、C++03、C++11、C++14、C++17、C++20 [1] [2]

Clang(包括 clang-cl [3] 和 armclang)扩展(最高支持 Clang 17.0)、

GNU 扩展(最高支持 GCC 13.2)、

Microsoft 扩展(最高支持 VS 2022)、

Arm Compiler 5 [4]

.cpp, .c++, .cxx, .hpp, .hh, .h++, .hxx, .c, .cc, .h
C# C# 最高支持 12

Microsoft Visual Studio 最高支持 2019,.NET 最高支持 4.8、

.NET Core 最高支持 3.1

.NET 5、.NET 6、.NET 7、.NET 8

.sln, .csproj, .cs, .cshtml, .xaml
Go(又名 Golang) Go 最高支持 1.22 Go 1.11 或更新版本 .go
Java Java 7 到 22 [5]

javac(OpenJDK 和 Oracle JDK)、

Eclipse 编译器 for Java (ECJ) [6]

.java
Kotlin [7] Kotlin 1.5.0 到 2.0.0_x kotlinc .kt
JavaScript ECMAScript 2022 或更低版本 不适用 .js, .jsx, .mjs, .es, .es6, .htm, .html, .xhtm, .xhtml, .vue, .hbs, .ejs, .njk, .json, .yaml, .yml, .raml, .xml [8]
Python [9] 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 不适用 .py
Ruby [10] 最高支持 3.3 不适用 .rb, .erb, .gemspec, Gemfile
Swift [11] Swift 5.4-5.10 Swift 编译器 .swift
TypeScript [12] 2.6-5.5 标准 TypeScript 编译器 .ts, .tsx, .mts, .cts
[1]C++20 支持目前处于测试阶段。不支持模块。
[2]不支持 Objective-C、Objective-C++、C++/CLI 和 C++/CX。
[3]对 clang-cl 编译器的支持处于初步阶段。
[4]对 Arm 编译器 (armcc) 的支持处于初步阶段。
[5]可以分析在 Java 7 到 22 上执行的构建。分析理解 Java 22 标准语言功能。
[6]当构建通过 Maven 编译器插件或 Takari 生命周期插件调用 ECJ 时,支持 ECJ。
[7]Kotlin 支持目前处于测试阶段。
[8]JSX 和 Flow 代码、YAML、JSON、HTML 和 XML 文件也可以与 JavaScript 文件一起进行分析。
[9]提取器需要 Python 3 才能运行。要分析 Python 2.7,应安装 Python 的两个版本。
[10]需要 glibc 2.17。
[11]Swift 支持目前处于测试阶段。对 Swift 的分析支持需要 macOS 或 Linux。
[12]通过在启用 TypeScript 的情况下运行 JavaScript 提取器来执行 TypeScript 分析。这是默认设置。

框架和库

CodeQL 库和查询包的当前版本 (源代码) 已针对下面列出的库和框架进行明确检查。

提示

如果您对其他库或框架感兴趣,可以扩展分析以涵盖它们。例如,通过扩展数据流库以包含其他库或框架的数据源和接收器。

C 和 C++ 内置支持

由 CodeQL 查询包的当前版本 codeql/cpp-queries (变更日志, 源代码) 和 CodeQL 库包 codeql/cpp-all (变更日志, 源代码) 提供。

名称 类别
Berkeley 套接字 API 库 网络通信器
Bloomberg 标准库 实用程序库
string.h 字符串库

C# 内置支持

由 CodeQL 查询包的当前版本 codeql/csharp-queries (变更日志, 源代码) 和 CodeQL 库包 codeql/csharp-all (变更日志, 源代码) 提供。

名称 类别
ASP.NET Web 应用程序框架
ASP.NET Core Web 应用程序框架
ASP.NET Razor 模板 Web 应用程序框架
Dapper 数据库 ORM
EntityFramework 数据库 ORM
EntityFramework Core 数据库 ORM
Json.NET 序列化
NHibernate 数据库 ORM
WinForms 用户界面

Go 内置支持

由 CodeQL 查询包的当前版本 codeql/go-queries (变更日志, 源代码) 和 CodeQL 库包 codeql/go-all (变更日志, 源代码) 提供。

名称 类别
AWS Lambda 无服务器框架
beego Web/日志记录/数据库框架
Chi Web 框架
Couchbase (gocbgo-couchbase) 数据库
Echo Web 框架
Gin Web 框架
glog 日志记录库
go-pg 数据库
go-restful Web 应用程序框架
go-sh 实用程序库
go-spew 日志记录库
GoKit 微服务工具包
Gokogiri XPath 库
golang.org/x/crypto/ssh 网络通信器
golang.org/x/net/websocket 网络通信器
goproxy HTTP 代理库
Gorilla mux HTTP 请求路由器和调度程序
Gorilla websocket 网络通信器
GORM 数据库
GoWebsocket 网络通信器
goxpath XPath 库
htmlquery XPath 库
json-iterator 序列化
jsonpatch 序列化
jsonquery XPath 库
klog 日志记录库
Logrus 日志记录库
Macaron Web 框架
mongo 数据库
nhooyr.io/websocket 网络通信器
protobuf 序列化
Revel Web 框架
SendGrid 电子邮件库
sqlx 数据库
Squirrel 数据库
ws 网络通信器
xmlpath XPath 库
xmlquery XPath 库
xpath XPath 库
xpathparser XPath 库
yaml 序列化
zap 日志记录库

Java 和 Kotlin 内置支持

注意

CodeQL 对 Kotlin 的分析目前处于测试阶段。在测试阶段,Kotlin 代码的分析以及相关文档将不会像其他语言那样全面。

由 CodeQL 查询包的当前版本 codeql/java-queries (变更日志, 源代码) 和 CodeQL 库包 codeql/java-all (变更日志, 源代码) 提供。

名称 类别
Apache Commons Collections 数据结构实用程序库
Apache Commons Lang 实用程序库
Apache HTTP 组件 网络通信器
Guava 实用程序和集合库
Hibernate 数据库
iBatis / MyBatis 数据库
Jackson 序列化
Java 持久性 API (JPA) 数据库
JaxRS Jakarta EE API 规范
JDBC 数据库
JSON-java 序列化
Kryo 反序列化 序列化
Project Lombok 实用程序库
Protobuf 序列化
SnakeYaml 序列化
Spring JDBC 数据库
Spring MVC Web 应用程序框架
Struts Web 应用程序框架
Thrift RPC 框架
XStream 序列化

JavaScript 和 TypeScript 内置支持

由 CodeQL 查询包的当前版本 codeql/javascript-queries (变更日志, 源代码) 和 CodeQL 库包 codeql/javascript-all (变更日志, 源代码) 提供。

名称 类别
angular(现代版本) HTML 框架
angular.js(旧版本) HTML 框架
AWS Lambda 无服务器框架
axios 网络通信器
浏览器 运行时环境
EJS 模板语言
电子 运行时环境
快递 服务器
Fastify 服务器
手柄 模板语言
Hapi 服务器
Hogan 模板语言
jQuery 实用程序库
Koa 服务器
lodash 实用程序库
MongoDB 数据库
MSSQL 数据库
小胡子 模板语言
MySQL 数据库
Nest.js 服务器
节点 运行时环境
Nunjucks 模板语言
PostgreSQL 数据库
Ramda 实用程序库
React HTML 框架
React Native HTML 框架
请求 网络通信器
Restify 服务器
Sequelize 数据库
Socket.io 网络通信器
SQLite3 数据库
超级代理 网络通信器
Swig 模板语言
下划线 实用程序库
Vue HTML 框架

Python 内置支持

由当前版本的 CodeQL 查询包 codeql/python-queries (变更日志, 源代码) 和 CodeQL 库包 codeql/python-all (变更日志, 源代码) 提供。

名称 类别
AWS Lambda 无服务器框架
aiohttp.web Web 框架
Django Web 框架
djangorestframework Web 框架
FastAPI Web 框架
Flask Web 框架
Flask-Admin Web 框架
Tornado Web 框架
Twisted Web 框架
Gradio Web 框架
starlette 异步服务器网关接口 (ASGI)
ldap3 轻量级目录访问协议 (LDAP)
python-ldap 轻量级目录访问协议 (LDAP)
httpx HTTP 客户端
pycurl HTTP 客户端
请求 HTTP 客户端
urllib HTTP 客户端
urllib2 HTTP 客户端
urllib3 HTTP 客户端
dill 序列化
PyYAML 序列化
ruamel.yaml 序列化
simplejson 序列化
toml 序列化
ujson 序列化
fabric 实用程序库
idna 实用程序库
invoke 实用程序库
jmespath 实用程序库
multidict 实用程序库
pydantic 实用程序库
yarl 实用程序库
aioch 数据库
aiomysql 数据库
aiopg 数据库
aiosqlite 数据库
asyncpg 数据库
cassandra-driver 数据库
clickhouse-driver 数据库
cx_Oracle 数据库
mysql-connector 数据库
mysql-connector-python 数据库
MySQL-python 数据库
mysqlclient 数据库
oracledb 数据库
phoenixdb 数据库
psycopg2 数据库
pymssql 数据库
PyMySQL 数据库
pyodbc 数据库
SQLite3 数据库
Flask-SQLAlchemy 数据库 ORM
peewee 数据库 ORM
SQLAlchemy 数据库 ORM
cryptography 密码学库
pycryptodome 密码学库
pycryptodomex 密码学库
rsa 密码学库
MarkupSafe 转义库
libtaxii TAXII 实用程序库
libxml2 XML 处理库
lxml XML 处理库
xmltodict XML 处理库

Ruby 内置支持

由当前版本的 CodeQL 查询包 codeql/ruby-queries (变更日志, 源代码) 和 CodeQL 库包 codeql/ruby-all (变更日志, 源代码) 提供。

名称 类别
excon HTTP 客户端
faraday HTTP 客户端
http_client HTTP 客户端
httparty HTTP 客户端
libxml-ruby XML 处理库
nokogiri XML 处理库
open-uri HTTP 客户端
posix-spawn 实用程序库
rest-client HTTP 客户端
Ruby on Rails Web 框架
rubyzip 压缩库
typhoeus HTTP 客户端

Swift 内置支持

注意

CodeQL 对 Swift 的分析目前处于测试阶段。在测试阶段,对 Swift 代码的分析以及相关文档将不像其他语言那样全面。

由当前版本的 CodeQL 查询包 codeql/swift-queries (变更日志, 源代码) 和 CodeQL 库包 codeql/swift-all (变更日志, 源代码) 提供。

名称 类别
AEXML XML 处理库
Alamofire 网络通信器
核心数据 数据库
CryptoKit 密码学库
CryptoSwift 密码学库
基础 实用程序库
GRDB 数据库
JavaScriptCore 脚本库
Libxml2 XML 处理库
网络 网络通信器
Realm Swift 数据库
RNCryptor 密码学库
SQLite3 数据库
SQLite.swift 数据库
UIKit 用户界面库
WebKit 用户界面库
  • ©GitHub, Inc.
  • 条款
  • 隐私