Files
codeql-info/ql/docs/language/learn-ql/build.html-5f4acb8/codeql-overview/supported-languages-and-frameworks.html
2023-11-20 11:57:03 -08:00

834 lines
39 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Supported languages and frameworks &#8212; CodeQL</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=93459777" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="CodeQL tools" href="codeql-tools.html" />
<link rel="prev" title="About CodeQL" href="about-codeql.html" />
<title>CodeQL docs</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<link rel="stylesheet" href="../_static/primer.css" type="text/css" />
</head><body>
<header class="Header">
<div class="Header-item--full">
<a href="https://codeql.github.com/docs" class="Header-link f2 d-flex flex-items-center">
<!-- <%= octicon "mark-github", class: "mr-2", height: 32 %> -->
<svg height="32" class="octicon octicon-mark-github mr-2" viewBox="0 0 16 16" version="1.1" width="32"
aria-hidden="true">
<path fill-rule="evenodd"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z">
</path>
</svg>
<span class="hide-sm">CodeQL documentation</span>
</a>
</div>
<div class="Header-item hide-sm hide-md">
<script src="https://addsearch.com/js/?key=93b4d287e2fc079a4089412b669785d5&categories=!0xhelp.semmle.com,0xcodeql.github.com,1xdocs,1xcodeql-standard-libraries,1xcodeql-query-help"></script>
</div>
<div class="Header-item">
<details class="dropdown details-reset details-overlay d-inline-block">
<summary class="btn bg-gray-dark text-white border" aria-haspopup="true">
CodeQL resources
<div class="dropdown-caret"></div>
</summary>
<ul class="dropdown-menu dropdown-menu-se dropdown-menu-dark">
<li><a class="dropdown-item" href="https://codeql.github.com/docs/codeql-overview">CodeQL overview</a></li>
<li class="dropdown-divider" role="separator"></li>
<div class="dropdown-header">
CodeQL tools
</div>
<li><a class="dropdown-item" href="https://codeql.github.com/docs/codeql-for-visual-studio-code">CodeQL for VS Code</a>
<li><a class="dropdown-item" href="https://codeql.github.com/docs/codeql-cli">CodeQL CLI</a>
</li>
<li class="dropdown-divider" role="separator"></li>
<div class="dropdown-header">
CodeQL guides
</div>
<li><a class="dropdown-item" href="https://codeql.github.com/docs/writing-codeql-queries">Writing CodeQL queries</a></li>
<li><a class="dropdown-item" href="https://codeql.github.com/docs/codeql-language-guides">CodeQL language guides</a>
<li class="dropdown-divider" role="separator"></li>
<div class="dropdown-header">
Reference docs
</div>
<li><a class="dropdown-item" href="https://codeql.github.com/docs/ql-language-reference/">QL language
reference</a>
<li><a class="dropdown-item" href="https://codeql.github.com/codeql-standard-libraries">CodeQL
standard-libraries</a>
<li><a class="dropdown-item" href="https://codeql.github.com/codeql-query-help">CodeQL
query help</a>
<li class="dropdown-divider" role="separator"></li>
<div class="dropdown-header">
Source files
</div>
<li><a class="dropdown-item" href="https://github.com/github/codeql">CodeQL repository</a>
</ul>
</details>
</div>
</header>
<main class="bg-gray-light clearfix">
<nav class="SideNav position-sticky top-0 col-lg-3 col-md-3 float-left p-4 hide-sm hide-md overflow-y-auto">
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="index.html">CodeQL overview</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="about-codeql.html">About CodeQL</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Supported languages and frameworks</a></li>
<li class="toctree-l2"><a class="reference internal" href="codeql-tools.html">CodeQL tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="codeql-glossary.html">CodeQL glossary</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../codeql-for-visual-studio-code/index.html">CodeQL for Visual Studio Code</a></li>
<li class="toctree-l1"><a class="reference internal" href="../codeql-cli/index.html">CodeQL CLI</a></li>
<li class="toctree-l1"><a class="reference internal" href="../writing-codeql-queries/index.html">Writing CodeQL queries</a></li>
<li class="toctree-l1"><a class="reference internal" href="../codeql-language-guides/index.html">CodeQL language guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ql-language-reference/index.html">QL language reference</a></li>
</ul>
</nav>
<div class="body col-sm-12 col-md-9 col-lg-9 float-left border-left">
<div class="hide-lg hide-xl px-4 pt-4">
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="nav-item nav-item-0"><a href="../contents.html">CodeQL</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="index.html"
accesskey="U">CodeQL overview</a> &#187;</li>
</ul>
</div>
</div>
<article class="p-4 col-lg-10 col-md-10 col-sm-12">
<section id="supported-languages-and-frameworks">
<span id="id1"></span><h1>Supported languages and frameworks<a class="headerlink" href="#supported-languages-and-frameworks" title="Link to this heading"></a></h1>
<p>View the languages, libraries, and frameworks supported in the latest version of
CodeQL.</p>
<section id="languages-and-compilers">
<h2>Languages and compilers<a class="headerlink" href="#languages-and-compilers" title="Link to this heading"></a></h2>
<p>CodeQL supports the following languages and compilers.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head stub"><p>Language</p></th>
<th class="head"><p>Variants</p></th>
<th class="head"><p>Compilers</p></th>
<th class="head"><p>Extensions</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><th class="stub"><p>C/C++</p></th>
<td><p>C89, C99, C11, C18, C++98, C++03, C++11, C++14, C++17, C++20 <a class="footnote-reference brackets" href="#id10" id="id2" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p></td>
<td><p>Clang (and clang-cl <a class="footnote-reference brackets" href="#id11" id="id3" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a>) extensions (up to Clang 12.0),</p>
<p>GNU extensions (up to GCC 11.1),</p>
<p>Microsoft extensions (up to VS 2019),</p>
<p>Arm Compiler 5 <a class="footnote-reference brackets" href="#id12" id="id4" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a></p>
</td>
<td><p><code class="docutils literal notranslate"><span class="pre">.cpp</span></code>, <code class="docutils literal notranslate"><span class="pre">.c++</span></code>, <code class="docutils literal notranslate"><span class="pre">.cxx</span></code>, <code class="docutils literal notranslate"><span class="pre">.hpp</span></code>, <code class="docutils literal notranslate"><span class="pre">.hh</span></code>, <code class="docutils literal notranslate"><span class="pre">.h++</span></code>, <code class="docutils literal notranslate"><span class="pre">.hxx</span></code>, <code class="docutils literal notranslate"><span class="pre">.c</span></code>, <code class="docutils literal notranslate"><span class="pre">.cc</span></code>, <code class="docutils literal notranslate"><span class="pre">.h</span></code></p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>C#</p></th>
<td><p>C# up to 10.0</p></td>
<td><p>Microsoft Visual Studio up to 2019 with .NET up to 4.8,</p>
<p>.NET Core up to 3.1</p>
<p>.NET 5, .NET 6</p>
</td>
<td><p><code class="docutils literal notranslate"><span class="pre">.sln</span></code>, <code class="docutils literal notranslate"><span class="pre">.csproj</span></code>, <code class="docutils literal notranslate"><span class="pre">.cs</span></code>, <code class="docutils literal notranslate"><span class="pre">.cshtml</span></code>, <code class="docutils literal notranslate"><span class="pre">.xaml</span></code></p></td>
</tr>
<tr class="row-even"><th class="stub"><p>Go (aka Golang)</p></th>
<td><p>Go up to 1.17</p></td>
<td><p>Go 1.11 or more recent</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">.go</span></code></p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>Java</p></th>
<td><p>Java 7 to 16 <a class="footnote-reference brackets" href="#id13" id="id5" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a></p></td>
<td><p>javac (OpenJDK and Oracle JDK),</p>
<p>Eclipse compiler for Java (ECJ) <a class="footnote-reference brackets" href="#id14" id="id6" role="doc-noteref"><span class="fn-bracket">[</span>5<span class="fn-bracket">]</span></a></p>
</td>
<td><p><code class="docutils literal notranslate"><span class="pre">.java</span></code></p></td>
</tr>
<tr class="row-even"><th class="stub"><p>JavaScript</p></th>
<td><p>ECMAScript 2021 or lower</p></td>
<td><p>Not applicable</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">.js</span></code>, <code class="docutils literal notranslate"><span class="pre">.jsx</span></code>, <code class="docutils literal notranslate"><span class="pre">.mjs</span></code>, <code class="docutils literal notranslate"><span class="pre">.es</span></code>, <code class="docutils literal notranslate"><span class="pre">.es6</span></code>, <code class="docutils literal notranslate"><span class="pre">.htm</span></code>, <code class="docutils literal notranslate"><span class="pre">.html</span></code>, <code class="docutils literal notranslate"><span class="pre">.xhtm</span></code>, <code class="docutils literal notranslate"><span class="pre">.xhtml</span></code>, <code class="docutils literal notranslate"><span class="pre">.vue</span></code>, <code class="docutils literal notranslate"><span class="pre">.hbs</span></code>, <code class="docutils literal notranslate"><span class="pre">.ejs</span></code>, <code class="docutils literal notranslate"><span class="pre">.njk</span></code>, <code class="docutils literal notranslate"><span class="pre">.json</span></code>, <code class="docutils literal notranslate"><span class="pre">.yaml</span></code>, <code class="docutils literal notranslate"><span class="pre">.yml</span></code>, <code class="docutils literal notranslate"><span class="pre">.raml</span></code>, <code class="docutils literal notranslate"><span class="pre">.xml</span></code> <a class="footnote-reference brackets" href="#id15" id="id7" role="doc-noteref"><span class="fn-bracket">[</span>6<span class="fn-bracket">]</span></a></p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>Python</p></th>
<td><p>2.7, 3.5, 3.6, 3.7, 3.8, 3.9</p></td>
<td><p>Not applicable</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">.py</span></code></p></td>
</tr>
<tr class="row-even"><th class="stub"><p>Ruby <a class="footnote-reference brackets" href="#id16" id="id8" role="doc-noteref"><span class="fn-bracket">[</span>7<span class="fn-bracket">]</span></a></p></th>
<td><p>up to 3.0.2</p></td>
<td><p>Not applicable</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">.rb</span></code>, <code class="docutils literal notranslate"><span class="pre">.erb</span></code>, <code class="docutils literal notranslate"><span class="pre">.gemspec</span></code>, <code class="docutils literal notranslate"><span class="pre">Gemfile</span></code></p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>TypeScript <a class="footnote-reference brackets" href="#id17" id="id9" role="doc-noteref"><span class="fn-bracket">[</span>8<span class="fn-bracket">]</span></a></p></th>
<td><p>2.6-4.5</p></td>
<td><p>Standard TypeScript compiler</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">.ts</span></code>, <code class="docutils literal notranslate"><span class="pre">.tsx</span></code></p></td>
</tr>
</tbody>
</table>
<div class="footnote-group docutils container">
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="id10" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id2">1</a><span class="fn-bracket">]</span></span>
<p>C++20 support is currently in beta. Supported for GCC on Linux only. Modules are <em>not</em> supported.</p>
</aside>
<aside class="footnote brackets" id="id11" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id3">2</a><span class="fn-bracket">]</span></span>
<p>Support for the clang-cl compiler is preliminary.</p>
</aside>
<aside class="footnote brackets" id="id12" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id4">3</a><span class="fn-bracket">]</span></span>
<p>Support for the Arm Compiler (armcc) is preliminary.</p>
</aside>
<aside class="footnote brackets" id="id13" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id5">4</a><span class="fn-bracket">]</span></span>
<p>Builds that execute on Java 7 to 16 can be analyzed. The analysis understands Java 16 standard language features.</p>
</aside>
<aside class="footnote brackets" id="id14" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id6">5</a><span class="fn-bracket">]</span></span>
<p>ECJ is supported when the build invokes it via the Maven Compiler plugin or the Takari Lifecycle plugin.</p>
</aside>
<aside class="footnote brackets" id="id15" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id7">6</a><span class="fn-bracket">]</span></span>
<p>JSX and Flow code, YAML, JSON, HTML, and XML files may also be analyzed with JavaScript files.</p>
</aside>
<aside class="footnote brackets" id="id16" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id8">7</a><span class="fn-bracket">]</span></span>
<p>Requires glibc 2.17.</p>
</aside>
<aside class="footnote brackets" id="id17" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id9">8</a><span class="fn-bracket">]</span></span>
<p>TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default for LGTM.</p>
</aside>
</aside>
</div>
</section>
<section id="frameworks-and-libraries">
<h2>Frameworks and libraries<a class="headerlink" href="#frameworks-and-libraries" title="Link to this heading"></a></h2>
<p>The libraries and queries in the current version of CodeQL have been explicitly checked against the libraries and frameworks listed below.</p>
<blockquote class="pull-quote">
<div><p>Tip</p>
<p>If youre interested in other libraries or frameworks, you can extend the analysis to cover them.
For example, by extending the data flow libraries to include data sources
and sinks for additional libraries or frameworks.</p>
</div></blockquote>
<section id="c-and-c-built-in-support">
<h3>C and C++ built-in support<a class="headerlink" href="#c-and-c-built-in-support" title="Link to this heading"></a></h3>
<table class="fullwidthtable docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Category</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/bloomberg/bde">Bloomberg Standard Library</a></p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://en.wikipedia.org/wiki/Berkeley_sockets#Socket_API_functions">Berkeley socket API library</a></p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-even"><td><p>string.h</p></td>
<td><p>String library</p></td>
</tr>
</tbody>
</table>
</section>
<section id="c-built-in-support">
<h3>C# built-in support<a class="headerlink" href="#c-built-in-support" title="Link to this heading"></a></h3>
<table class="fullwidthtable docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Category</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>ASP.NET</p></td>
<td><p>Web application framework</p></td>
</tr>
<tr class="row-odd"><td><p>ASP.NET Core</p></td>
<td><p>Web application framework</p></td>
</tr>
<tr class="row-even"><td><p>ASP.NET Razor templates</p></td>
<td><p>Web application framework</p></td>
</tr>
<tr class="row-odd"><td><p>Dapper</p></td>
<td><p>Database ORM</p></td>
</tr>
<tr class="row-even"><td><p>EntityFramework</p></td>
<td><p>Database ORM</p></td>
</tr>
<tr class="row-odd"><td><p>EntityFramework Core</p></td>
<td><p>Database ORM</p></td>
</tr>
<tr class="row-even"><td><p>Json.NET</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-odd"><td><p>NHibernate</p></td>
<td><p>Database ORM</p></td>
</tr>
<tr class="row-even"><td><p>WinForms</p></td>
<td><p>User interface</p></td>
</tr>
</tbody>
</table>
</section>
<section id="go-built-in-support">
<h3>Go built-in support<a class="headerlink" href="#go-built-in-support" title="Link to this heading"></a></h3>
<table class="fullwidthtable docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Category</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference external" href="https://beego.me/">beego</a></p></td>
<td><p>Web/logging/database framework</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/go-chi/chi">Chi</a></p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-even"><td><p>Couchbase (<a class="reference external" href="https://github.com/couchbase/gocb">gocb</a> and <a class="reference external" href="http://www.github.com/couchbase/go-couchbase">go-couchbase</a>)</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://echo.labstack.com/">Echo</a></p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/gin-gonic/gin">Gin</a></p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/golang/glog">glog</a></p></td>
<td><p>Logging library</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://pg.uptrace.dev/">go-pg</a></p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/emicklei/go-restful">go-restful</a></p></td>
<td><p>Web application framework</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/codeskyblue/go-sh">go-sh</a></p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/davecgh/go-spew">go-spew</a></p></td>
<td><p>Logging library</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/go-kit/kit">GoKit</a></p></td>
<td><p>Microservice toolkit</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/jbowtie/gokogiri">Gokogiri</a></p></td>
<td><p>XPath library</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://pkg.go.dev/golang.org/x/crypto/ssh">golang.org/x/crypto/ssh</a></p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://pkg.go.dev/golang.org/x/net/websocket">golang.org/x/net/websocket</a></p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/elazarl/goproxy">goproxy</a></p></td>
<td><p>HTTP proxy library</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="http://www.gorillatoolkit.org/pkg/mux">Gorilla mux</a></p></td>
<td><p>HTTP request router and dispatcher</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/gorilla/websocket">Gorilla websocket</a></p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://gorm.io/">GORM</a></p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/sacOO7/gowebsocket">GoWebsocket</a></p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/ChrisTrenkamp/goxpath">goxpath</a></p></td>
<td><p>XPath library</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/antchfx/htmlquery">htmlquery</a></p></td>
<td><p>XPath library</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/json-iterator/go">json-iterator</a></p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/evanphx/json-patch">jsonpatch</a></p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/antchfx/jsonquery">jsonquery</a></p></td>
<td><p>XPath library</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/kubernetes/klog">klog</a></p></td>
<td><p>Logging library</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/sirupsen/logrus">Logrus</a></p></td>
<td><p>Logging library</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://gopkg.in/macaron.v1">Macaron</a></p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo">mongo</a></p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="http://nhooyr.io/websocket">nhooyr.io/websocket</a></p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://pkg.go.dev/google.golang.org/protobuf">protobuf</a></p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="http://revel.github.io/">Revel</a></p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="http://jmoiron.github.io/sqlx/">sqlx</a></p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/sendgrid/sendgrid-go">SendGrid</a></p></td>
<td><p>Email library</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/Masterminds/squirrel">Squirrel</a></p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/gobwas/ws">ws</a></p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://gopkg.in/xmlpath.v2">xmlpath</a></p></td>
<td><p>XPath library</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/antchfx/xmlquery">xmlquery</a></p></td>
<td><p>XPath library</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://github.com/antchfx/xpath">xpath</a></p></td>
<td><p>XPath library</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/santhosh-tekuri/xpathparser">xpathparser</a></p></td>
<td><p>XPath library</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://gopkg.in/yaml.v3">yaml</a></p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference external" href="https://go.uber.org/zap">zap</a></p></td>
<td><p>Logging library</p></td>
</tr>
</tbody>
</table>
</section>
<section id="java-built-in-support">
<h3>Java built-in support<a class="headerlink" href="#java-built-in-support" title="Link to this heading"></a></h3>
<table class="fullwidthtable docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Category</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Apache Commons Lang</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p>Apache Commons Collections</p></td>
<td><p>Data structure utility library</p></td>
</tr>
<tr class="row-even"><td><p>Apache HTTP components</p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p>Guava</p></td>
<td><p>Utility and collections library</p></td>
</tr>
<tr class="row-even"><td><p>Hibernate</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>iBatis / MyBatis</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>Jackson</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-odd"><td><p>JSON-java</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p>Java Persistence API (JPA)</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>JaxRS</p></td>
<td><p>Jakarta EE API specification</p></td>
</tr>
<tr class="row-even"><td><p>JDBC</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>Protobuf</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p>Kryo deserialization</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-odd"><td><p>SnakeYaml</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p>Spring JDBC</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>Spring MVC</p></td>
<td><p>Web application framework</p></td>
</tr>
<tr class="row-even"><td><p>Struts</p></td>
<td><p>Web application framework</p></td>
</tr>
<tr class="row-odd"><td><p>Thrift</p></td>
<td><p>RPC framework</p></td>
</tr>
<tr class="row-even"><td><p>XStream</p></td>
<td><p>Serialization</p></td>
</tr>
</tbody>
</table>
</section>
<section id="javascript-and-typescript-built-in-support">
<h3>JavaScript and TypeScript built-in support<a class="headerlink" href="#javascript-and-typescript-built-in-support" title="Link to this heading"></a></h3>
<table class="fullwidthtable docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Category</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>angular (modern version)</p></td>
<td><p>HTML framework</p></td>
</tr>
<tr class="row-odd"><td><p>angular.js (legacy version)</p></td>
<td><p>HTML framework</p></td>
</tr>
<tr class="row-even"><td><p>axios</p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p>browser</p></td>
<td><p>Runtime environment</p></td>
</tr>
<tr class="row-even"><td><p>EJS</p></td>
<td><p>templating language</p></td>
</tr>
<tr class="row-odd"><td><p>electron</p></td>
<td><p>Runtime environment</p></td>
</tr>
<tr class="row-even"><td><p>express</p></td>
<td><p>Server</p></td>
</tr>
<tr class="row-odd"><td><p>handlebars</p></td>
<td><p>templating language</p></td>
</tr>
<tr class="row-even"><td><p>hapi</p></td>
<td><p>Server</p></td>
</tr>
<tr class="row-odd"><td><p>hogan</p></td>
<td><p>templating language</p></td>
</tr>
<tr class="row-even"><td><p>jquery</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p>koa</p></td>
<td><p>Server</p></td>
</tr>
<tr class="row-even"><td><p>lodash</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p>mongodb</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>mssql</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>mustache</p></td>
<td><p>templating language</p></td>
</tr>
<tr class="row-even"><td><p>mysql</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>node</p></td>
<td><p>Runtime environment</p></td>
</tr>
<tr class="row-even"><td><p>nest.js</p></td>
<td><p>Server</p></td>
</tr>
<tr class="row-odd"><td><p>nunjucks</p></td>
<td><p>templating language</p></td>
</tr>
<tr class="row-even"><td><p>postgres</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>ramda</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-even"><td><p>react</p></td>
<td><p>HTML framework</p></td>
</tr>
<tr class="row-odd"><td><p>react native</p></td>
<td><p>HTML framework</p></td>
</tr>
<tr class="row-even"><td><p>request</p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p>sequelize</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>socket.io</p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p>sqlite3</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>superagent</p></td>
<td><p>Network communicator</p></td>
</tr>
<tr class="row-odd"><td><p>swig</p></td>
<td><p>templating language</p></td>
</tr>
<tr class="row-even"><td><p>underscore</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p>vue</p></td>
<td><p>HTML framework</p></td>
</tr>
</tbody>
</table>
</section>
<section id="python-built-in-support">
<h3>Python built-in support<a class="headerlink" href="#python-built-in-support" title="Link to this heading"></a></h3>
<table class="fullwidthtable docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Category</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>aiohttp.web</p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-odd"><td><p>Django</p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-even"><td><p>djangorestframework</p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-odd"><td><p>FastAPI</p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-even"><td><p>Flask</p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-odd"><td><p>Tornado</p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-even"><td><p>Twisted</p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-odd"><td><p>Flask-Admin</p></td>
<td><p>Web framework</p></td>
</tr>
<tr class="row-even"><td><p>starlette</p></td>
<td><p>Asynchronous Server Gateway Interface (ASGI)</p></td>
</tr>
<tr class="row-odd"><td><p>python-ldap</p></td>
<td><p>Lightweight Directory Access Protocol (LDAP)</p></td>
</tr>
<tr class="row-even"><td><p>ldap3</p></td>
<td><p>Lightweight Directory Access Protocol (LDAP)</p></td>
</tr>
<tr class="row-odd"><td><p>requests</p></td>
<td><p>HTTP client</p></td>
</tr>
<tr class="row-even"><td><p>dill</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-odd"><td><p>PyYAML</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p>ruamel.yaml</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-odd"><td><p>simplejson</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p>toml</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-odd"><td><p>ujson</p></td>
<td><p>Serialization</p></td>
</tr>
<tr class="row-even"><td><p>fabric</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p>idna</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-even"><td><p>invoke</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p>jmespath</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-even"><td><p>multidict</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p>pydantic</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-even"><td><p>yarl</p></td>
<td><p>Utility library</p></td>
</tr>
<tr class="row-odd"><td><p>aioch</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>aiomysql</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>aiopg</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>asyncpg</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>clickhouse-driver</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>mysql-connector-python</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>mysql-connector</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>MySQL-python</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>mysqlclient</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>psycopg2</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-odd"><td><p>sqlite3</p></td>
<td><p>Database</p></td>
</tr>
<tr class="row-even"><td><p>Flask-SQLAlchemy</p></td>
<td><p>Database ORM</p></td>
</tr>
<tr class="row-odd"><td><p>peewee</p></td>
<td><p>Database ORM</p></td>
</tr>
<tr class="row-even"><td><p>SQLAlchemy</p></td>
<td><p>Database ORM</p></td>
</tr>
<tr class="row-odd"><td><p>cryptography</p></td>
<td><p>Cryptography library</p></td>
</tr>
<tr class="row-even"><td><p>pycryptodome</p></td>
<td><p>Cryptography library</p></td>
</tr>
<tr class="row-odd"><td><p>pycryptodomex</p></td>
<td><p>Cryptography library</p></td>
</tr>
<tr class="row-even"><td><p>rsa</p></td>
<td><p>Cryptography library</p></td>
</tr>
<tr class="row-odd"><td><p>MarkupSafe</p></td>
<td><p>Escaping Library</p></td>
</tr>
</tbody>
</table>
</section>
</section>
</section>
</article>
<!-- GitHub footer, with links to terms and privacy statement -->
<div class="px-3 px-md-6 f6 py-4 d-sm-flex flex-justify-between flex-row-reverse flex-items-center border-top">
<ul class="list-style-none d-flex flex-items-center mb-3 mb-sm-0 lh-condensed-ultra">
<li class="mr-3">
<a href="https://twitter.com/github" title="GitHub on Twitter" style="color: #959da5;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 273.5 222.3" class="d-block" height="18">
<path
d="M273.5 26.3a109.77 109.77 0 0 1-32.2 8.8 56.07 56.07 0 0 0 24.7-31 113.39 113.39 0 0 1-35.7 13.6 56.1 56.1 0 0 0-97 38.4 54 54 0 0 0 1.5 12.8A159.68 159.68 0 0 1 19.1 10.3a56.12 56.12 0 0 0 17.4 74.9 56.06 56.06 0 0 1-25.4-7v.7a56.11 56.11 0 0 0 45 55 55.65 55.65 0 0 1-14.8 2 62.39 62.39 0 0 1-10.6-1 56.24 56.24 0 0 0 52.4 39 112.87 112.87 0 0 1-69.7 24 119 119 0 0 1-13.4-.8 158.83 158.83 0 0 0 86 25.2c103.2 0 159.6-85.5 159.6-159.6 0-2.4-.1-4.9-.2-7.3a114.25 114.25 0 0 0 28.1-29.1"
fill="currentColor"></path>
</svg>
</a>
</li>
<li class="mr-3">
<a href="https://www.facebook.com/GitHub" title="GitHub on Facebook" style="color: #959da5;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.3 15.4" class="d-block" height="18">
<path
d="M14.5 0H.8a.88.88 0 0 0-.8.9v13.6a.88.88 0 0 0 .8.9h7.3v-6h-2V7.1h2V5.4a2.87 2.87 0 0 1 2.5-3.1h.5a10.87 10.87 0 0 1 1.8.1v2.1h-1.3c-1 0-1.1.5-1.1 1.1v1.5h2.3l-.3 2.3h-2v5.9h3.9a.88.88 0 0 0 .9-.8V.8a.86.86 0 0 0-.8-.8z"
fill="currentColor"></path>
</svg>
</a>
</li>
<li class="mr-3">
<a href="https://www.youtube.com/github" title="GitHub on YouTube" style="color: #959da5;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.17 13.6" class="d-block" height="16">
<path
d="M18.77 2.13A2.4 2.4 0 0 0 17.09.42C15.59 0 9.58 0 9.58 0a57.55 57.55 0 0 0-7.5.4A2.49 2.49 0 0 0 .39 2.13 26.27 26.27 0 0 0 0 6.8a26.15 26.15 0 0 0 .39 4.67 2.43 2.43 0 0 0 1.69 1.71c1.52.42 7.5.42 7.5.42a57.69 57.69 0 0 0 7.51-.4 2.4 2.4 0 0 0 1.68-1.71 25.63 25.63 0 0 0 .4-4.67 24 24 0 0 0-.4-4.69zM7.67 9.71V3.89l5 2.91z"
fill="currentColor"></path>
</svg>
</a>
</li>
<li class="mr-3 flex-self-start">
<a href="https://www.linkedin.com/company/github" title="GitHub on Linkedin" style="color: #959da5;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" class="d-block" height="18">
<path
d="M3.94 2A2 2 0 1 1 2 0a2 2 0 0 1 1.94 2zM4 5.48H0V18h4zm6.32 0H6.34V18h3.94v-6.57c0-3.66 4.77-4 4.77 0V18H19v-7.93c0-6.17-7.06-5.94-8.72-2.91z"
fill="currentColor"></path>
</svg>
</a>
</li>
<li>
<a href="https://github.com/github" title="GitHub's organization" style="color: #959da5;">
<svg version="1.1" width="20" height="20" viewBox="0 0 16 16" class="octicon octicon-mark-github"
aria-hidden="true">
<path fill-rule="evenodd"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z">
</path>
</svg>
</a>
</li>
</ul>
<ul class="list-style-none d-flex text-gray">
<li class="mr-3">&copy;
<script type="text/javascript">document.write(new Date().getFullYear());</script> GitHub, Inc.</li>
<li class="mr-3"><a
href="https://docs.github.com/github/site-policy/github-terms-of-service"
class="link-gray">Terms </a></li>
<li><a href="https://docs.github.com/github/site-policy/github-privacy-statement"
class="link-gray">Privacy </a></li>
</ul>
</div>
</div>
</main>
<script type="text/javascript">
$(document).ready(function () {
$(".toggle > *").hide();
$(".toggle .name").show();
$(".toggle .name").click(function () {
$(this).parent().children().not(".name").toggle(400);
$(this).parent().children(".name").toggleClass("open");
})
});
</script>
</body>
</html>