Qrates is a tool for running large scale analysis of Rust code. In case you are curious what you can do with Qrates, you can find the Jupyter notebooks we produced for our paper “How Do Programmers Use Unsafe Rust?” here (the CSV files are available here).
The documentation explains how Qrates works and shows examples of how to use it on both public and private code bases. If you would like to use some part of Qrates as a library, you can find the API documentation here.
Running queries on entire crates.io requires a machine that has at least 150 GB of RAM (contributions that reduce this number are very welcome!). To help others to run interesting analyses, we set up a CI job that runs the queries and publishes the generated CSV files here. So, if you would like us to run your custom query, follow the instructions how to write your custom query and open a PR with it.
The initial version of the framework (originally called RustQL) was developed by Nicolas Winkler as part of his Bachelor thesis. Later, the Rust compiler team released Rustwide and stabilized the Rust procedural macros, which led the framework to be rewritten into its current form.