> For the complete CircleCI developer hub index, see [llms.txt](https://circleci.com/developer/llms.txt)

# cimg/rust

A Rust Docker image built to run on CircleCI that contains rustup, rustc, cargo and rustfmt

***This image is designed to supercede the legacy CircleCI Rust image, `circleci/rust`.***

`cimg/rust` is a Docker image created by CircleCI with continuous integration builds in mind.
Each tag contains a complete Rust version and toolchain (such as rustfmt), and any binaries and tools that are required for builds to complete successfully in a CircleCI environment.


## Getting Started

This image can be used with the CircleCI `docker` executor.
For example:

```yaml
jobs:
  build:
    docker:
      - image: cimg/rust:1.96.1
    steps:
      - checkout
      - run: cargo --version
```

In the above example, the CircleCI Rust Docker image is used for the primary container.
More specifically, the tag `1.96.1` is used meaning the version of Rust will be Rust v1.96.1.
You can now use Rust within the steps for this job.


## How This Image Works

This image contains the Rust programming language and its complete toolchain.

### Tagging Scheme

This image has the following tagging scheme:

```
cimg/rust:<rust-version>[-variant]
```

`<rust-version>` - The version of Rust to use.
This can be a full SemVer point release (such as `1.43.0`) or just the minor release (such as `1.43`).
If you use the minor release tag, it will automatically point to future patch updates as they are released by the Rust Team.
For example, the tag `1.43` points to Rust v1.43.0 now, but when the next release comes out, it will point to Rust v1.43.1.

`[-variant]` - Variant tags, if available, can optionally be used.
For example, the Node.js variant could be used like this: `cimg/rust:1.43-node`.


## Image Tags


### Variants

Variant images typically contain the same base software, but with a few additional modifications.

#### Node.js

The Node.js variant is the same Rust image but with Node.js also installed.
The Node.js variant can be used by appending `-node` to the end of an existing `cimg/rust` tag.

```yaml
jobs:
  build:
    docker:
      - image: cimg/rust:1.96.1-node
    steps:
      - checkout
      - run: cargo --version
      - run: node --version
```

#### Browsers

The browsers variant is the same Rust image but with Node.js, Java, Selenium, and browser dependencies pre-installed via apt.
The browsers variant can be used by appending `-browser` to the end of an existing `cimg/rust` tag.
The browsers variant is designed to work in conjunction with the [CircleCI Browser Tools orb](https://circleci.com/developer/orbs/orb/circleci/browser-tools).
You can use the orb to install a version of Google Chrome and/or Firefox into your build. The image contains all of the supporting tools needed to use both the browser and its driver.

```yaml
orbs:
  browser-tools: circleci/browser-tools@1.1
jobs:
  build:
    docker:
      - image: cimg/rust:1.45-browsers
    steps:
      - browser-tools/install-browser-tools
      - checkout
      - run: |
          cargo --version
          node --version
          java --version
          google-chrome --version
```
