Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



73 Commits

Repository files navigation

RFC index

A curated index of Rust RFCs.

View the RFC index at

This project has three parts:

  • a website for browsing Rust RFCs,
  • metadata for that website,
  • a CLI app for editing the above metadata and generating the website.

Building and running

You'll need to get a GitHub personal access token and put it in a file called in the root of this repo at compile time.

Build using the standard Cargo commands.


    rfc-index <SUBCOMMAND>

    -h, --help       Prints help information
    -V, --version    Prints version information

    add         Add new metadata for an RFC
    delete      Delete the metadata of an RFC
    generate    Generate the RFC website
    get         Query the metadata of an RFC
    help        Prints this message or the help of the given subcommand(s)
    migrate     Migrate metadata between versions
    query       Query the metadata
    scan        Scan the RFC repo for metadata
    set         Update metadata for an RFC
    stats       Emit stats about the metadata
    tag         Set/update tags on metadata

Use generate to create the website.

Use add, delete, set, tag, and scan to edit metadata. You can also directly edit the JSON metadata in the metadata directory.


Contributions are most welcome!

Contributing updates to the RFC metadata is very valuable. In particular, writing titles for RFCs, improving RFCs' tags and category (called a 'team' in the metadata and code), and adding newly merged RFCs is essential work for making this a high quality resource.

Improving the website itself is also very welcome, there are many ways we could improve the presentation and show more information, etc.

How it works

The CLI uses Git to clone the RFC repo to get the RFC text. It uses md-book's markdown rendering and Handlebars to generate a static website. We keep metadata for each RFC and use this to generate the index of RFCs. Initial data was taken from PRs to the RFCs repo using the Octocat GitHub API library.

The metadata we use for the index is:


RFCs don't have a title, therefore we create a title for each RFC. Where there isn't a title yet, we use the RFC's filename (which is often unsatisfactory).


This is a broad category and only roughly matches the actual Rust team responsible for an RFC. An RFC can belong to multiple teams. Some RFCs have no team ('unclassified' on the website), this should be fixed.

Many RFCs' team was taken from T- labels on the RFC PR, but teams can be changed to be more useful.


An RFC can have many tags. Tags are nested under teams using metadata in metadata/tags.json. Tags were mostly seeded from A- labels on RFC PRs, but again can be changed.


A curated index of Rust RFCs







No releases published


No packages published