Skip to content

Rust: update supported languages and frameworks #19280

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions docs/codeql/reusables/supported-frameworks.rst
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,39 @@ and the CodeQL library pack ``codeql/ruby-all`` (`changelog <https://github.com/
rubyzip, Compression library
typhoeus, HTTP client

Rust built-in support
====================================

Provided by the current versions of the
CodeQL query pack ``codeql/rust-queries`` (`changelog <https://github.com/github/codeql/tree/codeql-cli/latest/rust/ql/src/CHANGELOG.md>`__, `source <https://github.com/github/codeql/tree/codeql-cli/latest/rust/ql/src>`__)
and the CodeQL library pack ``codeql/rust-all`` (`changelog <https://github.com/github/codeql/tree/codeql-cli/latest/rust/ql/lib/CHANGELOG.md>`__, `source <https://github.com/github/codeql/tree/codeql-cli/latest/rust/ql/lib>`__).
All support is experimental.

.. csv-table::
:header-rows: 1
:class: fullWidthTable
:widths: auto
:align: left

Name, Category
alloc, Standard library
core, Standard library
`digest <https://crates.io/crates/digest>`__, Cryptography library
`futures-executor <https://crates.io/crates/futures-executor>`__, Utility library
`hyper <https://crates.io/crates/hyper>`__, HTTP library
`hyper-util <https://crates.io/crates/hyper-util>`__, HTTP library
`libc <https://crates.io/crates/libc>`__, Utility library
`log <https://crates.io/crates/log>`__, Logging library
`md5 <https://crates.io/crates/md5>`__, Utility library
`postgres <https://crates.io/crates/postgres>`__, Database
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`postgres <https://crates.io/crates/postgres>`__, Database
`poem <https://crates.io/crates/poem>`__, Web framework
`postgres <https://crates.io/crates/postgres>`__, Database

A limited model for "poem" exists in https://github.com/github/codeql/blob/main/rust/ql/lib/codeql/rust/frameworks/Poem.qll .

proc_macro, Standard library
`regex <https://crates.io/crates/regex>`__, Utility library
`reqwest <https://crates.io/crates/reqwest>`__, HTTP client
`rusqlite <https://crates.io/crates/rusqlite>`__, Database
std, Standard library
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
std, Standard library
std, Standard library
`rust-crypto <https://crates.io/crates/rust-crypto>`__, Cryptography library

See https://github.com/github/codeql/tree/main/rust/ql/lib/codeql/rust/frameworks/rustcrypto .

`tokio-postgres <https://crates.io/crates/tokio-postgres>`__, Database
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`tokio-postgres <https://crates.io/crates/tokio-postgres>`__, Database
`sqlx <https://crates.io/crates/sqlx>`__, Database
`tokio-postgres <https://crates.io/crates/tokio-postgres>`__, Database

Models for "sqlx" exist in https://github.com/github/codeql/blob/main/rust/ql/lib/codeql/rust/frameworks/Sqlx.qll .

`url <https://crates.io/crates/url>`__, Utility library

Swift built-in support
================================

Expand Down
2 changes: 2 additions & 0 deletions docs/codeql/reusables/supported-versions-compilers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
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`` [7]_"
Python [8]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py``
Ruby [9]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``"
Rust [13]_,"Rust editions 2021 and 2024","Rust compiler","``.rs``, ``Cargo.toml``"
Swift [10]_,"Swift 5.4-6.0","Swift compiler","``.swift``"
TypeScript [11]_,"2.6-5.8",Standard TypeScript compiler,"``.ts``, ``.tsx``, ``.mts``, ``.cts``"

Expand All @@ -42,3 +43,4 @@
.. [10] Support for the analysis of Swift requires macOS.
.. [11] TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default.
.. [12] Support for GitHub Actions is in public preview.
.. [13] Support for Rust is experimental and requires ``rustup`` and ``cargo`` to be installed, as well as `CODEQL_ENABLE_EXPERIMENTAL_FEATURES=true` set in the environment. Features from nightly toolchains are not supported.