Andreas Jonson | 30659cd | 2020-07-19 14:53:37 | [diff] [blame] | 1 | <a href = "https://www.rust-lang.org/"> |
Anirban | 4c33b7c | 2020-06-25 14:03:19 | [diff] [blame] | 2 | <img width = "90%" height = "auto" src = "https://img.shields.io/badge/Rust-Programming%20Language-black?style=flat&logo=rust" alt = "The Rust Programming Language"> |
Anirban | 3a1ac28 | 2020-06-25 11:13:27 | [diff] [blame] | 3 | </a> |
Austin Seipp | 62c4d2c | 2012-01-23 21:53:12 | [diff] [blame] | 4 | |
Peter Atashian | be43c65 | 2016-06-27 17:51:27 | [diff] [blame] | 5 | This is the main source code repository for [Rust]. It contains the compiler, |
Andreas Jonson | 30659cd | 2020-07-19 14:53:37 | [diff] [blame] | 6 | standard library, and documentation. |
Nick Hamann | 74f1818 | 2015-05-15 05:43:40 | [diff] [blame] | 7 | |
Brian Anderson | 7793829 | 2015-11-09 21:22:16 | [diff] [blame] | 8 | [Rust]: https://www.rust-lang.org |
Tshepang Lekhonkhobe | a8680de | 2015-06-18 21:48:51 | [diff] [blame] | 9 | |
mark | 3f6928f | 2020-06-17 19:25:00 | [diff] [blame] | 10 | **Note: this README is for _users_ rather than _contributors_.** |
| 11 | |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 12 | ## Quick Start |
Brian Anderson | c92d2ed | 2012-07-10 05:13:48 | [diff] [blame] | 13 | |
Fuqiao Xue | 09ac478 | 2017-06-09 05:37:22 | [diff] [blame] | 14 | Read ["Installation"] from [The Book]. |
Austin Seipp | 62c4d2c | 2012-01-23 21:53:12 | [diff] [blame] | 15 | |
misagh | 3d23e55 | 2018-12-10 22:28:55 | [diff] [blame] | 16 | ["Installation"]: https://doc.rust-lang.org/book/ch01-01-installation.html |
Eli Friedman | bbbfed2 | 2015-08-09 21:15:05 | [diff] [blame] | 17 | [The Book]: https://doc.rust-lang.org/book/index.html |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 18 | |
Who? Me?! | 0c4602a | 2019-01-18 21:28:23 | [diff] [blame] | 19 | ## Installing from Source |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 20 | |
mark | 3f6928f | 2020-06-17 19:25:00 | [diff] [blame] | 21 | **Note: If you wish to _contribute_ to the compiler, you should read the |
| 22 | [Getting Started][gettingstarted] of the rustc-dev-guide instead of this |
| 23 | section.** |
Eric Huss | 06c3256 | 2019-07-09 23:12:41 | [diff] [blame] | 24 | |
Anirban | 22fc18f | 2020-06-25 10:59:37 | [diff] [blame] | 25 | The Rust build system uses a Python script called `x.py` to build the compiler, |
Andreas Jonson | 30659cd | 2020-07-19 14:53:37 | [diff] [blame] | 26 | which manages the bootstrapping process. More information about it can be found |
Anirban | d6cf8fc | 2020-06-24 15:39:08 | [diff] [blame] | 27 | by running `./x.py --help` or reading the [rustc dev guide][rustcguidebuild]. |
Eric Huss | 06c3256 | 2019-07-09 23:12:41 | [diff] [blame] | 28 | |
Valentin | df43dcd | 2020-07-03 09:42:12 | [diff] [blame] | 29 | [gettingstarted]: https://rustc-dev-guide.rust-lang.org/getting-started.html |
Santiago Pastorino | b3b32b7 | 2020-03-09 21:33:04 | [diff] [blame] | 30 | [rustcguidebuild]: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html |
Who? Me?! | 0c4602a | 2019-01-18 21:28:23 | [diff] [blame] | 31 | |
DutchGhost | 503048c | 2020-06-02 14:12:36 | [diff] [blame] | 32 | ### Building on a Unix-like system |
Adrien Tétar | a30d61b | 2014-01-11 14:19:38 | [diff] [blame] | 33 | 1. Make sure you have installed the dependencies: |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 34 | |
Andreas Jonson | 166719a | 2019-08-31 06:50:02 | [diff] [blame] | 35 | * `g++` 5.1 or later or `clang++` 3.5 or later |
Guillaume Gomez | 38eb369 | 2019-11-21 12:57:40 | [diff] [blame] | 36 | * `python` 3 or 2.7 |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 37 | * GNU `make` 3.81 or later |
Neil Williams | 4254b31 | 2016-08-17 04:30:17 | [diff] [blame] | 38 | * `cmake` 3.4.3 or later |
Josh Triplett | 30b7dac | 2020-07-29 18:37:33 | [diff] [blame] | 39 | * `ninja` |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 40 | * `curl` |
| 41 | * `git` |
Aditya Atluri | 7dd5c66 | 2019-09-06 19:54:42 | [diff] [blame] | 42 | * `ssl` which comes in `libssl-dev` or `openssl-devel` |
= | d695e24 | 2019-09-29 15:58:29 | [diff] [blame] | 43 | * `pkg-config` if you are compiling on Linux and targeting Linux |
Steve Klabnik | f645cad | 2015-02-13 17:26:44 | [diff] [blame] | 44 | |
Brian Anderson | 7430e58 | 2015-02-18 21:46:20 | [diff] [blame] | 45 | 2. Clone the [source] with `git`: |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 46 | |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 47 | ```sh |
| 48 | $ git clone https://github.com/rust-lang/rust.git |
| 49 | $ cd rust |
| 50 | ``` |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 51 | |
Brian Anderson | 4acc483 | 2015-02-16 04:20:25 | [diff] [blame] | 52 | [source]: https://github.com/rust-lang/rust |
| 53 | |
Eric Huss | 06c3256 | 2019-07-09 23:12:41 | [diff] [blame] | 54 | 3. Configure the build settings: |
| 55 | |
| 56 | The Rust build system uses a file named `config.toml` in the root of the |
| 57 | source tree to determine various configuration settings for the build. |
| 58 | Copy the default `config.toml.example` to `config.toml` to get started. |
Adrien Tétar | a30d61b | 2014-01-11 14:19:38 | [diff] [blame] | 59 | |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 60 | ```sh |
Eric Huss | 06c3256 | 2019-07-09 23:12:41 | [diff] [blame] | 61 | $ cp config.toml.example config.toml |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 62 | ``` |
Adrien Tétar | a30d61b | 2014-01-11 14:19:38 | [diff] [blame] | 63 | |
Anirban | 3b5d7f8 | 2020-06-24 04:59:35 | [diff] [blame] | 64 | If you plan to use `x.py install` to create an installation, it is recommended |
| 65 | that you set the `prefix` value in the `[install]` section to a directory. |
Eddie Kovsky | 71dfb01 | 2019-03-21 04:21:53 | [diff] [blame] | 66 | |
Aditya Atluri | 7dd5c66 | 2019-09-06 19:54:42 | [diff] [blame] | 67 | Create install directory if you are not installing in default directory |
| 68 | |
Eric Huss | 06c3256 | 2019-07-09 23:12:41 | [diff] [blame] | 69 | 4. Build and install: |
| 70 | |
| 71 | ```sh |
| 72 | $ ./x.py build && ./x.py install |
Eddie Kovsky | 71dfb01 | 2019-03-21 04:21:53 | [diff] [blame] | 73 | ``` |
| 74 | |
Eric Huss | 06c3256 | 2019-07-09 23:12:41 | [diff] [blame] | 75 | When complete, `./x.py install` will place several programs into |
| 76 | `$PREFIX/bin`: `rustc`, the Rust compiler, and `rustdoc`, the |
Brian Anderson | 21ed20b | 2015-02-16 04:41:16 | [diff] [blame] | 77 | API-documentation tool. This install does not include [Cargo], |
Eric Huss | 06c3256 | 2019-07-09 23:12:41 | [diff] [blame] | 78 | Rust's package manager. To build and install Cargo, you may |
| 79 | run `./x.py install cargo` or set the `build.extended` key in |
| 80 | `config.toml` to `true` to build and install all tools. |
Brian Anderson | 21ed20b | 2015-02-16 04:41:16 | [diff] [blame] | 81 | |
| 82 | [Cargo]: https://github.com/rust-lang/cargo |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 83 | |
Luqman Aden | 8b83355 | 2014-06-27 00:07:44 | [diff] [blame] | 84 | ### Building on Windows |
Luqman Aden | 8b83355 | 2014-06-27 00:07:44 | [diff] [blame] | 85 | |
Steve Klabnik | 011a23e | 2016-01-04 17:33:43 | [diff] [blame] | 86 | There are two prominent ABIs in use on Windows: the native (MSVC) ABI used by |
| 87 | Visual Studio, and the GNU ABI used by the GCC toolchain. Which version of Rust |
| 88 | you need depends largely on what C/C++ libraries you want to interoperate with: |
| 89 | for interop with software produced by Visual Studio use the MSVC build of Rust; |
| 90 | for interop with GNU software built using the MinGW/MSYS2 toolchain use the GNU |
| 91 | build. |
| 92 | |
Steve Klabnik | 011a23e | 2016-01-04 17:33:43 | [diff] [blame] | 93 | #### MinGW |
Steve Klabnik | 011a23e | 2016-01-04 17:33:43 | [diff] [blame] | 94 | |
Alex Crichton | cb74a58 | 2016-06-27 23:02:06 | [diff] [blame] | 95 | [MSYS2][msys2] can be used to easily build Rust on Windows: |
Luqman Aden | 8b83355 | 2014-06-27 00:07:44 | [diff] [blame] | 96 | |
Alex Crichton | b67f23c | 2016-07-06 18:35:33 | [diff] [blame] | 97 | [msys2]: https://msys2.github.io/ |
Luqman Aden | 8b83355 | 2014-06-27 00:07:44 | [diff] [blame] | 98 | |
Alex Crichton | cb74a58 | 2016-06-27 23:02:06 | [diff] [blame] | 99 | 1. Grab the latest [MSYS2 installer][msys2] and go through the installer. |
| 100 | |
| 101 | 2. Run `mingw32_shell.bat` or `mingw64_shell.bat` from wherever you installed |
| 102 | MSYS2 (i.e. `C:\msys64`), depending on whether you want 32-bit or 64-bit |
| 103 | Rust. (As of the latest version of MSYS2 you have to run `msys2_shell.cmd |
| 104 | -mingw32` or `msys2_shell.cmd -mingw64` from the command line instead) |
| 105 | |
| 106 | 3. From this terminal, install the required tools: |
Luqman Aden | 8b83355 | 2014-06-27 00:07:44 | [diff] [blame] | 107 | |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 108 | ```sh |
Jake Shadle | 371c0ea | 2015-08-28 07:46:23 | [diff] [blame] | 109 | # Update package mirrors (may be needed if you have a fresh install of MSYS2) |
Jake Shadle | 7ab8ed8 | 2015-08-28 18:24:13 | [diff] [blame] | 110 | $ pacman -Sy pacman-mirrors |
Alex Crichton | cb74a58 | 2016-06-27 23:02:06 | [diff] [blame] | 111 | |
| 112 | # Install build tools needed for Rust. If you're building a 32-bit compiler, |
| 113 | # then replace "x86_64" below with "i686". If you've already got git, python, |
| 114 | # or CMake installed and in PATH you can remove them from this list. Note |
CDirkx | 00d459a | 2020-08-30 23:22:25 | [diff] [blame] | 115 | # that it is important that you do **not** use the 'python2', 'cmake' and 'ninja' |
Corey Farwell | 273cc30 | 2016-12-21 18:58:46 | [diff] [blame] | 116 | # packages from the 'msys2' subsystem. The build has historically been known |
| 117 | # to fail with these packages. |
Alex Crichton | cb74a58 | 2016-06-27 23:02:06 | [diff] [blame] | 118 | $ pacman -S git \ |
| 119 | make \ |
| 120 | diffutils \ |
Danny Hua | 2ebef83 | 2016-10-14 02:38:49 | [diff] [blame] | 121 | tar \ |
Guillaume Gomez | 38eb369 | 2019-11-21 12:57:40 | [diff] [blame] | 122 | mingw-w64-x86_64-python \ |
Alex Crichton | cb74a58 | 2016-06-27 23:02:06 | [diff] [blame] | 123 | mingw-w64-x86_64-cmake \ |
CDirkx | 00d459a | 2020-08-30 23:22:25 | [diff] [blame] | 124 | mingw-w64-x86_64-gcc \ |
| 125 | mingw-w64-x86_64-ninja |
Steve Klabnik | 011a23e | 2016-01-04 17:33:43 | [diff] [blame] | 126 | ``` |
Carlos Liam | 3967e1c | 2015-10-06 15:14:11 | [diff] [blame] | 127 | |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 128 | 4. Navigate to Rust's source code (or clone it), then build it: |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 129 | |
| 130 | ```sh |
Marc-Antoine Perennou | 150d644 | 2017-05-18 20:48:14 | [diff] [blame] | 131 | $ ./x.py build && ./x.py install |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 132 | ``` |
Bryce Van Dyk | ee24add | 2015-10-22 08:52:17 | [diff] [blame] | 133 | |
Steve Klabnik | 011a23e | 2016-01-04 17:33:43 | [diff] [blame] | 134 | #### MSVC |
Steve Klabnik | 011a23e | 2016-01-04 17:33:43 | [diff] [blame] | 135 | |
Scott McMurray | 7171bd1 | 2019-05-14 04:54:47 | [diff] [blame] | 136 | MSVC builds of Rust additionally require an installation of Visual Studio 2017 |
| 137 | (or later) so `rustc` can use its linker. The simplest way is to get the |
Sunreal | 1cf662e | 2019-06-07 14:08:22 | [diff] [blame] | 138 | [Visual Studio], check the “C++ build tools” and “Windows 10 SDK” workload. |
Scott McMurray | 7171bd1 | 2019-05-14 04:54:47 | [diff] [blame] | 139 | |
Sunreal | 3d6070d | 2019-06-07 16:14:52 | [diff] [blame] | 140 | [Visual Studio]: https://visualstudio.microsoft.com/downloads/ |
Scott McMurray | 7171bd1 | 2019-05-14 04:54:47 | [diff] [blame] | 141 | |
Scott McMurray | 67ee286 | 2019-05-24 06:40:07 | [diff] [blame] | 142 | (If you're installing cmake yourself, be careful that “C++ CMake tools for |
| 143 | Windows” doesn't get included under “Individual components”.) |
Steve Klabnik | 011a23e | 2016-01-04 17:33:43 | [diff] [blame] | 144 | |
Alex Crichton | 0e272de | 2016-11-16 20:31:19 | [diff] [blame] | 145 | With these dependencies installed, you can build the compiler in a `cmd.exe` |
| 146 | shell with: |
Steve Klabnik | 011a23e | 2016-01-04 17:33:43 | [diff] [blame] | 147 | |
| 148 | ```sh |
Alex Crichton | 0e272de | 2016-11-16 20:31:19 | [diff] [blame] | 149 | > python x.py build |
| 150 | ``` |
| 151 | |
Dhirendra Kumar Kashyap | 3eaa4a3 | 2018-06-13 17:23:50 | [diff] [blame] | 152 | Currently, building Rust only works with some known versions of Visual Studio. If |
Anirban | 886f81e | 2020-06-23 10:41:13 | [diff] [blame] | 153 | you have a more recent version installed and the build system doesn't understand, |
| 154 | you may need to force rustbuild to use an older version. This can be done |
Alex Crichton | b67f23c | 2016-07-06 18:35:33 | [diff] [blame] | 155 | by manually calling the appropriate vcvars file before running the bootstrap. |
| 156 | |
Behnam Esfahbod | 88fe8ac | 2018-09-09 03:02:50 | [diff] [blame] | 157 | ```batch |
Martin Finkel | 54e268c | 2019-07-31 03:58:17 | [diff] [blame] | 158 | > CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" |
Behnam Esfahbod | 88fe8ac | 2018-09-09 03:02:50 | [diff] [blame] | 159 | > python x.py build |
Peter Atashian | be43c65 | 2016-06-27 17:51:27 | [diff] [blame] | 160 | ``` |
| 161 | |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 162 | #### Specifying an ABI |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 163 | |
| 164 | Each specific ABI can also be used from either environment (for example, using |
Dhirendra Kumar Kashyap | 3eaa4a3 | 2018-06-13 17:23:50 | [diff] [blame] | 165 | the GNU ABI in PowerShell) by using an explicit build triple. The available |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 166 | Windows build triples are: |
| 167 | - GNU ABI (using GCC) |
| 168 | - `i686-pc-windows-gnu` |
| 169 | - `x86_64-pc-windows-gnu` |
| 170 | - The MSVC ABI |
| 171 | - `i686-pc-windows-msvc` |
| 172 | - `x86_64-pc-windows-msvc` |
| 173 | |
Matt Ickstadt | 081f32a | 2017-08-22 18:28:39 | [diff] [blame] | 174 | The build triple can be specified by either specifying `--build=<triple>` when |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 175 | invoking `x.py` commands, or by copying the `config.toml` file (as described |
Eric Huss | 06c3256 | 2019-07-09 23:12:41 | [diff] [blame] | 176 | in [Installing From Source](#installing-from-source)), and modifying the |
| 177 | `build` option under the `[build]` section. |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 178 | |
| 179 | ### Configure and Make |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 180 | |
| 181 | While it's not the recommended build system, this project also provides a |
| 182 | configure script and makefile (the latter of which just invokes `x.py`). |
| 183 | |
| 184 | ```sh |
| 185 | $ ./configure |
| 186 | $ make && sudo make install |
| 187 | ``` |
| 188 | |
Dhirendra Kumar Kashyap | b0a5555 | 2018-06-13 17:50:50 | [diff] [blame] | 189 | When using the configure script, the generated `config.mk` file may override the |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 190 | `config.toml` file. To go back to the `config.toml` file, delete the generated |
| 191 | `config.mk` file. |
| 192 | |
Steve Klabnik | fd53ea2 | 2015-08-18 17:49:20 | [diff] [blame] | 193 | ## Building Documentation |
Steve Klabnik | fd53ea2 | 2015-08-18 17:49:20 | [diff] [blame] | 194 | |
| 195 | If you’d like to build the documentation, it’s almost the same: |
| 196 | |
| 197 | ```sh |
Josh Driver | fb2d763 | 2017-02-23 10:45:30 | [diff] [blame] | 198 | $ ./x.py doc |
Steve Klabnik | fd53ea2 | 2015-08-18 17:49:20 | [diff] [blame] | 199 | ``` |
| 200 | |
projektir | 6b7b262 | 2017-03-13 05:01:32 | [diff] [blame] | 201 | The generated documentation will appear under `doc` in the `build` directory for |
| 202 | the ABI used. I.e., if the ABI was `x86_64-pc-windows-msvc`, the directory will be |
| 203 | `build\x86_64-pc-windows-msvc\doc`. |
Steve Klabnik | fd53ea2 | 2015-08-18 17:49:20 | [diff] [blame] | 204 | |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 205 | ## Notes |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 206 | |
| 207 | Since the Rust compiler is written in Rust, it must be built by a |
Dhirendra Kumar Kashyap | 3eaa4a3 | 2018-06-13 17:23:50 | [diff] [blame] | 208 | precompiled "snapshot" version of itself (made in an earlier stage of |
Jack Moffitt | 8d64fa3 | 2013-07-18 23:27:43 | [diff] [blame] | 209 | development). As such, source builds require a connection to the Internet, to |
Dhirendra Kumar Kashyap | b0a5555 | 2018-06-13 17:50:50 | [diff] [blame] | 210 | fetch snapshots, and an OS that can execute the available snapshot binaries. |
Austin Seipp | 62c4d2c | 2012-01-23 21:53:12 | [diff] [blame] | 211 | |
Brian Anderson | 4c833af | 2012-10-11 00:56:38 | [diff] [blame] | 212 | Snapshot binaries are currently built and tested on several platforms: |
Brian Anderson | 3403e41 | 2012-07-10 05:20:32 | [diff] [blame] | 213 | |
Lzu Tao | 029ff37 | 2020-08-31 14:43:54 | [diff] [blame] | 214 | | Platform / Architecture | x86 | x86_64 | |
| 215 | |---------------------------------------------|-----|--------| |
| 216 | | Windows (7, 8, 10, ...) | ✓ | ✓ | |
| 217 | | Linux (kernel 2.6.32, glibc 2.11 or later) | ✓ | ✓ | |
Lzu Tao | 116ad98 | 2020-09-01 01:11:05 | [diff] [blame] | 218 | | macOS (10.7 Lion or later) | (\*) | ✓ | |
| 219 | |
| 220 | (\*): Apple dropped support for running 32-bit binaries starting from macOS 10.15 and iOS 11. |
| 221 | Due to this decision from Apple, the targets are no longer useful to our users. |
| 222 | Please read [our blog post][macx32] for more info. |
| 223 | |
| 224 | [macx32]: https://blog.rust-lang.org/2020/01/03/reducing-support-for-32-bit-apple-targets.html |
Austin Seipp | 62c4d2c | 2012-01-23 21:53:12 | [diff] [blame] | 225 | |
Adrien Tétar | a30d61b | 2014-01-11 14:19:38 | [diff] [blame] | 226 | You may find that other platforms work, but these are our officially |
Brian Anderson | 4c833af | 2012-10-11 00:56:38 | [diff] [blame] | 227 | supported build environments that are most likely to work. |
Austin Seipp | 62c4d2c | 2012-01-23 21:53:12 | [diff] [blame] | 228 | |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 229 | ## Getting Help |
Brian Anderson | cd1fabe | 2014-08-22 18:04:35 | [diff] [blame] | 230 | |
| 231 | The Rust community congregates in a few places: |
| 232 | |
Kevin Yap | 24fa6be | 2015-02-21 22:46:06 | [diff] [blame] | 233 | * [Stack Overflow] - Direct questions about using the language. |
| 234 | * [users.rust-lang.org] - General discussion and broader questions. |
Brian Anderson | 5716ede | 2015-01-29 23:49:00 | [diff] [blame] | 235 | * [/r/rust] - News and general discussion. |
Brian Anderson | cd1fabe | 2014-08-22 18:04:35 | [diff] [blame] | 236 | |
Maxwell Paul Brickner | f7e9041 | 2017-04-19 21:45:48 | [diff] [blame] | 237 | [Stack Overflow]: https://stackoverflow.com/questions/tagged/rust |
| 238 | [/r/rust]: https://reddit.com/r/rust |
Eli Friedman | bbbfed2 | 2015-08-09 21:15:05 | [diff] [blame] | 239 | [users.rust-lang.org]: https://users.rust-lang.org/ |
Steve Klabnik | f645cad | 2015-02-13 17:26:44 | [diff] [blame] | 240 | |
| 241 | ## Contributing |
Steve Klabnik | f645cad | 2015-02-13 17:26:44 | [diff] [blame] | 242 | |
mark | 3f6928f | 2020-06-17 19:25:00 | [diff] [blame] | 243 | If you are interested in contributing to the Rust project, please take a look |
| 244 | at the [Getting Started][gettingstarted] guide in the [rustc-dev-guide]. |
Brian Anderson | 4618955 | 2015-02-16 04:58:06 | [diff] [blame] | 245 | |
Camelid | 8783c62 | 2020-09-02 00:48:15 | [diff] [blame^] | 246 | [rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org |
| 247 | |
Brian Anderson | c92d2ed | 2012-07-10 05:13:48 | [diff] [blame] | 248 | ## License |
Austin Seipp | 62c4d2c | 2012-01-23 21:53:12 | [diff] [blame] | 249 | |
Brian Anderson | 11a9918 | 2012-12-28 21:40:33 | [diff] [blame] | 250 | Rust is primarily distributed under the terms of both the MIT license |
| 251 | and the Apache License (Version 2.0), with portions covered by various |
| 252 | BSD-like licenses. |
Austin Seipp | 62c4d2c | 2012-01-23 21:53:12 | [diff] [blame] | 253 | |
Peter Atashian | be43c65 | 2016-06-27 17:51:27 | [diff] [blame] | 254 | See [LICENSE-APACHE](LICENSE-APACHE), [LICENSE-MIT](LICENSE-MIT), and |
| 255 | [COPYRIGHT](COPYRIGHT) for details. |
Andrew Xu | 8ffb6fd | 2019-04-06 10:04:06 | [diff] [blame] | 256 | |
| 257 | ## Trademark |
Andrew Xu | 8ffb6fd | 2019-04-06 10:04:06 | [diff] [blame] | 258 | |
| 259 | The Rust programming language is an open source, community project governed |
| 260 | by a core team. It is also sponsored by the Mozilla Foundation (“Mozilla”), |
| 261 | which owns and protects the Rust and Cargo trademarks and logos |
| 262 | (the “Rust Trademarks”). |
| 263 | |
| 264 | If you want to use these names or brands, please read the [media guide][media-guide]. |
| 265 | |
Andrew Xu | 98beb12 | 2019-04-12 14:14:21 | [diff] [blame] | 266 | Third-party logos may be subject to third-party copyrights and trademarks. See |
| 267 | [Licenses][policies-licenses] for details. |
| 268 | |
Andrew Xu | 8ffb6fd | 2019-04-06 10:04:06 | [diff] [blame] | 269 | [media-guide]: https://www.rust-lang.org/policies/media-guide |
Andrew Xu | 98beb12 | 2019-04-12 14:14:21 | [diff] [blame] | 270 | [policies-licenses]: https://www.rust-lang.org/policies/licenses |