How to start contributing

Thank you for your interest in contributing to Rust! There are many ways to contribute, and we appreciate all of them. This document describes how you can get in touch with other Rust contributors and start contributing to Rust projects.

As a reminder, all contributors are expected to follow our Code of Conduct.

Asking Questions

First, if you have any questions regarding your potential contributions, you can ask other contributors on the following places:

See also the list of teams and working groups and the Community page on the official website for more resources.

Please ask questions! A lot of people report feeling that they are "wasting expert time", but we do not feel that way. Contributors are important to us.

Also, if you feel comfortable, prefer public topics, as this means others can see the questions and answers, and perhaps even integrate them back into this guide :)

Tip: If you're not a native English speaker and feel unsure about writing, try using a translator to help. But avoid using LLM tools that generate long, complex words. In daily teamwork, simple and clear words are best for easy understanding. Even small typos or grammar mistakes can make you seem more human, and people connect better with humans.

See also our LLM policy.

If you want to contribute substantial changes, we suggest first contacting the team relevant to these changes. Each teams has their own preferred workflow, please follow the recommended path in order to have a prior discussion and team buy-in:

In case of doubt, feel free to ask on Zulip.

Etiquette

We do ask that you be mindful to include as much useful information as you can in your question, but we recognize this can be hard if you are unfamiliar with contributing to Rust.

Just pinging someone without providing any context can be a bit annoying and just create noise, so we ask that you be mindful of the fact that team members get a lot of pings in a day.

How to start contributing?

The Rust project is quite large and it can be difficult to know which parts of the project need help, or are a good starting place for beginners. Here is a (non-exhaustive) list of rust-lang projects that could serve as starting places for you to contribute. Some of them have contributor guides and issues that are marked as needing help or being good first issues.

Project Contribution guide Good first issues Description
Compiler rustc-dev-guide Help wanted Rust compiler and associated tooling
Standard library std-dev-guide Rust standard library
Rustdoc Rustdoc overview Rust documentation generator
Cargo Cargo Contributor Guide Good first issues Rust package manager and build system
Clippy Clippy Contributor Guide Good first issues Rust linter
Rustfmt Rustfmt Contributing Guide Good first issues Rust formatter
Rust analyzer Contributing Quick Start Good first issues Rust compiler frontend and LSP for IDEs
Miri Miri Contribution Guide Good first issues Rust interpreter and UB detector
Rustup Rustup Developer Guide Help wanted Rust toolchain installer
crates.io crates.io Contribution guide Issue tracker Rust package registry
Bors bors Development guide Help wanted Rust CI merge bot
rustc-perf Help wanted Rust compiler benchmark suite
Triagebot Good first issues Rust automation bot
Rust playground Help wanted Rust online playground
Rustlings Rustlings Contribution Guide Issue tracker Rust exercises
MdBook MdBook Contribution Guide Help wanted Book generator written in Rust

If you want to get inspired, check all the rust-lang repositories!

Etiquette

We know that starting contributing in a FOSS1 project could be confusing at times and we want both contributors and reviewers have the best possible experience when collaborating in our project.

To achieve this goal, we want to build trust and respect of each other's time and efforts. Our recommendation is to follow these simple guidelines:

See also our LLM usage policy.

Different kinds of contributions

There are various ways in which you can contribute to Rust projects:

  1. Free-Open Source Project, see: https://en.wikipedia.org/wiki/Free_and_open-source_software