# Rust for Embedded Applications

## About this Install Guide

| Reading time: | 10 min         |
|----------------|-----------------|
| Last updated:  | 22 Jun 2026     |

| Author:        | Ronan Synnott, Arm [LinkedIn](https://linkedin.com/in/ronansynnott) |
|----------------|---------------------------------------------------|
| Official docs: | [View](https://docs.rust-embedded.org/)        |

This guide shows you how to install and use the tool with the most common configuration. For advanced options and complete reference information, see the official documentation. Some install guides also include optional next steps to help you explore related workflows or integrations.

[Rust](https://www.rust-lang.org/) is an open source programming language.

This install guide is for developers using Rust for their embedded applications.

If you are using Rust to build Linux applications on an Arm Linux platform, refer to [Rust for Linux Applications](https://learn.arm.com/install-guides/rust/) instead.

This install guide describes a setup using an Ubuntu Linux host.

For a thorough review of all options, refer to the official documentation. See [The Embedded Rust Book](https://docs.rust-embedded.org/book/).

## How do I install Rust for Embedded Applications?

### How do I download and install Rust?

Run the following command to download and install Rust:

```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -y | sh
```

Start a new shell or run the following command to continue:

```bash
source "$HOME/.cargo/env"
```

To confirm the installation is complete, run the following (`cargo` is the Rust package manager):

```bash
rustc --version
cargo version
```

The output is similar to:

```bash
__output__ rustc 1.78.0 (9b00956e5 2024-04-29)
__output__ cargo 1.78.0 (54d8815d0 2024-03-26)
```

### How do I add Arm cross-compilation support?

Add cross compilation support for the required Arm Architectures. For example, to add support for Armv7-M architecture, you can use:

```bash
rustup target add thumbv7m-none-eabi
```

For a full list of supported architectures, use:

```bash
rustup target list
```

### How do I install cargo-generate?

To generate a project from a template, you need `cargo-generate`. To install and rebuild use:

```bash
sudo apt install -y libssl-dev pkg-config
sudo apt install -y build-essential
cargo install cargo-generate
```

### How do I install cargo-binutils? (optional)

Other utilities are also available. For completeness, they can be installed with:

```bash
cargo install cargo-binutils
rustup component add llvm-tools-preview
```

You are now ready to build an embedded application in Rust.
