|Yes||East Coast, US|
At this time, access to the program and the compute instances is limited to maintainers and core contributors of the Rust Project. While the program is under development, it is invite-only.
If you feel like your work on the Rust project would be significantly improved by access to a powerful build machine, reach out to firstname.lastname@example.org with the following information:
- Your GitHub handle
- A short description of how you would use and benefit from the dev desktops
Each user has their own account on the dev desktops. The account is named after
the user’s GitHub handle, with
gh- as a prefix. For example, a user with the
user will have a user account with the name
gh-user on the dev
Users can connect to the dev desktop with SSH. The dev desktops use public key authentication, and automatically fetch the user’s public keys from GitHub.
You can connect to the instance with the following command:
<name> with the machine name from the table at the top of the page.
For example, connect to
dev-desktop-eu-1 using the hostname
If you don’t have a public key on GitHub, read the following guides that explain how to create an SSH key and add it to your GitHub account. It might take a few minutes after the key has been added before the dev desktops get updated.
When connecting to the machine for the first time, there are a few things you might want to do.
First, check that your Git username and email are configured correctly.
git config -l --global
You can configure your username and email address with:
git config --global user.name "Your name" git config --global user.email "your-email"
The dev desktops don’t have Rust pre-installed, but instead make it easy to install a specific toolchain from a local repository or worktree.
First, you want to run the following command to install
If you don't want or need to work with your own version of Rust, you can skip the next section and start working.
If you haven't done so yet, open the rust-lang/rust repository on GitHub and create a fork in your personal account. Then connect to the dev desktop and run the following script:
The script will clone your personal fork to the dev desktop, check out the latest version from rust-lang/rust, and compile it. Once that's done, it will link the stages so that you can work with them locally.
The directory contains more scripts to manage worktrees and Rust versions. Run
help.sh to get a list and a short description of them.
The dev desktops are designed to work with repositories on GitHub that belong to your user account. A GitHub App is used to protect your credentials and give you granular control over the repositories that the dev desktops can access.
First, go to https://github.com/apps/rust-cloud-vms to give the app access to
your repositories. It's recommended to only grant access to the repositories
that you want to use on the dev desktop, e.g. your fork of
Then connect to the dev desktop and clone the repository that you want to work on with HTTPS. From there, you can work with the repository like you would normally do.
Under the hood, the GitHub App acts as a credentials helper for Git and generates temporary access tokens that are scoped to the permissions that you have granted the application. If you get an error, review the permissions and ensure that the app is allowed to access your repository.
Most modern code editors provide support for remote development via SSH. This can be used to write code locally, but execute it inside the dev desktop. While the configuration will differ slightly, the following example for Visual Studio Code should be applicable to other editors as well.
Setting up remote development with VS Code is pretty straightforward, and is described in detail in VS Code’s documentation: Remote Development using SSH. In summary:
- SSH into the dev desktop and clone the repository that you want to work on to a local folder
- Then open VS Code on your machine and install the Remote Development Extension Pack
- Open the command palette and search for “Remote-SS: Connect to host”
- Enter your username and the instance name (
- Select the path for the cloned repository from step 1
- Install any extensions that you want to run on the server (e.g. rust-analyzer)
- Use VS Code to run or debug the code remotely
If you experience any problems with the dev desktops, or have feedback and suggestions, get in touch with the infrastructure team:
We might ask you to create an issue in the rust-lang/simpleinfra repository.