Using Rust 1.66.1 Toolset
Installing and using Rust 1.66.1 Toolset
Abstract
Making open source more inclusive Copy linkLink copied to clipboard!
Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.
Chapter 1. Rust Toolset Copy linkLink copied to clipboard!
Rust Toolset is a Red Hat offering for developers on Red Hat Enterprise Linux (RHEL). It provides the rustc
compiler for the Rust programming language, the Rust package manager Cargo, the rustfmt
formatting tool, and required libraries.
Rust Toolset is distributed as a part of Red Hat Developer Tools for Red Hat Enterprise Linux 7. For Red Hat Enterprise Linux 8, Rust Toolset is available as a module. Rust Toolset is available as packages for Red Hat Enterprise Linux 9.
1.1. Rust Toolset components Copy linkLink copied to clipboard!
The following components are available as part of Rust Toolset:
Name | Version | Description |
---|---|---|
| 1.66.1 | The Rust compiler front-end for LLVM. |
| 1.66.1 | A build system and dependency manager for Rust. |
| 1.66.1 | A tool for automatic formatting of Rust code. |
1.2. Rust Toolset compatibility Copy linkLink copied to clipboard!
Rust Toolset is available for Red Hat Enterprise Linux 7 and Red Hat Enterprise Linux 8 and Red Hat Enterprise Linux 9 on the following architectures:
- AMD and Intel 64-bit
- 64-bit ARM (RHEL 8 and RHEL 9)
- IBM Power Systems, Little Endian
- IBM Power Systems, Big Endian (Only RHEL 7)
- 64-bit IBM Z
1.3. Getting access to Rust Toolset on Red Hat Enterprise Linux 7 Copy linkLink copied to clipboard!
To be able to install Rust Toolset on Red Hat Enterprise Linux 7, you must access and enable Red Hat Developer Tools and Red Hat Software Collections repositories.
If these repositories are already attached to your system, see Installing Rust Toolset.
Procedure
Install
Wget
by running:yum install wget
# yum install wget
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the latest subscription data by running:
subscription-manager refresh
# subscription-manager refresh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Register your system by running:
subscription-manager register
# subscription-manager register
Copy to Clipboard Copied! Toggle word wrap Toggle overflow To register your system using a graphical user interface (GUI), follow the Registering and Unregistering a System guide.
Display a list of all available subscriptions and identify the pool ID by running:
subscription-manager list --available
# subscription-manager list --available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Find the pool ID on the line beginning with
Pool ID
. Attach the subscription that provides access to the
Red Hat Developer Tools
repository to your system by running:subscription-manager attach --pool=<pool ID from the subscription>
# subscription-manager attach --pool=<pool ID from the subscription>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<pool ID from the subscription>
with the pool ID you identified in the previous step.
-
Replace
Verify which subscriptions are attached to your system by running:
sudo subscription-manager list --consumed
# sudo subscription-manager list --consumed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enable the
rhel-7-variant-devtools-rpms
repository by running:subscription-manager repos --enable rhel-7-<variant>-devtools-rpms
# subscription-manager repos --enable rhel-7-<variant>-devtools-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
<variant>
with your Red Hat Enterprise Linux system variant:server
orworkstation
.Use
server
to access the widest range of development tools.
Enable the
rhel-variant-rhscl-7-rpms
repository by running:subscription-manager repos --enable rhel-<variant>-rhscl-7-rpms
# subscription-manager repos --enable rhel-<variant>-rhscl-7-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<variant>
with your Red Hat Enterprise Linux system variant:server
orworkstation
.
-
Replace
Add the Red Hat Developer Tools GPG key to your system by running:
cd /etc/pki/rpm-gpg wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt rpm --import RPM-GPG-KEY-redhat-devel
# cd /etc/pki/rpm-gpg # wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt # rpm --import RPM-GPG-KEY-redhat-devel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. Installing Rust Toolset Copy linkLink copied to clipboard!
Complete the following steps to install Rust Toolset including all development and debugging tools as well as dependent packages. Note that Rust Toolset has a dependency on LLVM Toolset.
Prerequisites
-
On Red Hat Enterprise Linux 7, a subscription providing access to the Red Hat Developer Tools content set is attached to your system.
To attach the subscription, see Getting access to Rust Toolset on Red Hat Enterprise Linux 7. - All available Red Hat Enterprise Linux updates are installed.
Procedure
On Red Hat Enterprise Linux 7, install the rust-toolset-1.66
collection by running:
yum install rust-toolset-1.66
# yum install rust-toolset-1.66
On Red Hat Enterprise Linux 8, install the rust-toolset
module by running:
yum module install rust-toolset
# yum module install rust-toolset
On Red Hat Enterprise Linux 9, install the rust-toolset
package by running:
dnf install rust-toolset
# dnf install rust-toolset
1.5. Installing Rust documentation Copy linkLink copied to clipboard!
The The Rust Programming Language book is available as installable documentation.
Prerequisites
-
Rust Toolset is installed.
For more information, see Installing Rust Toolset.
Procedure
To install the rust-doc
package, run the following command:
On Red Hat Enterprise Linux 7:
yum install rust-toolset-1.66-rust-doc
# yum install rust-toolset-1.66-rust-doc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can find the The Rust Programming Language book under the following path:
/opt/rh/rust-toolset-1.66/root/usr/share/doc/rust/html/index.html
.
You can find the API documentation for all Rust code packages under the following path:/opt/rh/rust-toolset-1.66/root/usr/share/doc/rust/html/std/index.html
.On Red Hat Enterprise Linux 8:
yum install rust-doc
# yum install rust-doc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can find the The Rust Programming Language book under the following path:
/usr/share/doc/rust/html/index.html
.
You can find the API documentation for all Rust code packages under the following path:/usr/share/doc/rust/html/std/index.html
.On Red Hat Enterprise Linux 9:
dnf install rust-doc
# dnf install rust-doc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can find the The Rust Programming Language book under the following path:
/usr/share/doc/rust/html/index.html
.
You can find the API documentation for all Rust code packages under the following path:/usr/share/doc/rust/html/std/index.html
.
1.6. Installing Cargo documentation Copy linkLink copied to clipboard!
The Cargo, Rust’s Package Manager book is available as installable documentation for Cargo.
From Rust Toolset 1.66, the cargo-doc
package is included in the rust-doc
package.
Prerequisites
-
Rust Toolset is installed.
For more information, see Installing Rust Toolset.
Procedure
To install the
cargo-doc
package, run:On Red Hat Enterprise Linux 7:
yum install rust-toolset-1.66-cargo-doc
# yum install rust-toolset-1.66-cargo-doc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can find the Cargo book under the following path:
/opt/rh/rust-toolset-1.66/root/usr/share/doc/cargo/html/index.html
.On Red Hat Enterprise Linux 8:
yum install cargo-doc
# yum install cargo-doc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can find the Cargo, Rust’s Package Manager book under the following path:
/usr/share/doc/cargo/html/index.html
.On Red Hat Enterprise Linux 9:
dnf install cargo-doc
# dnf install cargo-doc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can find the Cargo, Rust’s Package Manager book under the following path:
/usr/share/doc/cargo/html/index.html
.
Chapter 2. The Cargo build tool Copy linkLink copied to clipboard!
Cargo is a build tool and front end for the Rust compiler rustc
as well as a package and dependency manager. It allows Rust projects to declare dependencies with specific version requirements, resolves the full dependency graph, downloads packages, and builds as well as tests your entire project.
Rust Toolset is distributed with Cargo 1.66.1.
2.1. The Cargo directory structure and file placements Copy linkLink copied to clipboard!
The Cargo build tool uses set conventions for defining the directory structure and file placement within a Cargo package. Running the cargo new
command generates the package directory structure and templates for both a manifest and a project file. By default, it also initializes a new Git repository in the package root directory.
For a binary program, Cargo creates a directory project_name
containing a text file named Cargo.toml
and a subdirectory src
containing a text file named main.rs
.
2.2. Creating a Rust project Copy linkLink copied to clipboard!
Create a new Rust project that is set up according to the Cargo conventions. For more information on Cargo conventions, see Cargo directory structure and file placements.
Procedure
Create a Rust project by running the following command:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo new --bin <project_name>'
$ scl enable rust-toolset-1.66 'cargo new --bin <project_name>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<project_name>
with your project name.
-
Replace
On Red Hat Enterprise Linux 8:
cargo new --bin <project_name>
$ cargo new --bin <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<project_name>
with your project name.
-
Replace
On Red Hat Enterprise Linux 9:
cargo new --bin <project_name>
$ cargo new --bin <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<project_name>
with your project name.
-
Replace
To edit the project code, edit the main executable file main.rs
and add new source files to the src
subdirectory.
Additional resources
- For information on configuring your project and adding dependencies, see Configuring Rust project dependencies.
2.3. Creating a Rust library project Copy linkLink copied to clipboard!
Complete the following steps to create a Rust library project using the Cargo build tool.
Procedure
To create a Rust library project, run the following command:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo new --lib <project_name>'
$ scl enable rust-toolset-1.66 'cargo new --lib <project_name>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<project_name>
with the name of your Rust project.
-
Replace
On Red Hat Enterprise Linux 8:
cargo new --lib <project_name>
$ cargo new --lib <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<project_name>
with the name of your Rust project.
-
Replace
On Red Hat Enterprise Linux 9:
cargo new --lib <project_name>
$ cargo new --lib <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<project_name>
with the name of your Rust project.
-
Replace
To edit the project code, edit the source file, lib.rs
, in the src
subdirectory.
Additional resources
2.4. Building a Rust project Copy linkLink copied to clipboard!
Build your Rust project using the Cargo build tool. Cargo resolves all dependencies of your project, downloads missing dependencies, and compiles it using the rustc
compiler.
By default, projects are built and compiled in debug mode. For information on compiling your project in release mode, see Building a Rust project in release mode.
Prerequisites
-
An existing Rust project.
For information on how to create a Rust project, see Creating a Rust project.
Procedure
To build a Rust project managed by Cargo, run in the project directory:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo build'
$ scl enable rust-toolset-1.66 'cargo build'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo build
$ cargo build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo build
$ cargo build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- To verify that your Rust program can be built when you do not need to build an executable file, run:
cargo check
$ cargo check
2.5. Building a Rust project in release mode Copy linkLink copied to clipboard!
Build your Rust project in release mode using the Cargo build tool. Release mode is optimizing your source code and can therefore increase compilation time while ensuring that the compiled binary will run faster. Use this mode to produce optimized artifacts suitable for release and production.
Cargo resolves all dependencies of your project, downloads missing dependencies, and compiles it using the rustc
compiler.
For information on compiling your project in debug mode, see Building a Rust project.
Prerequisites
-
An existing Rust project.
For information on how to create a Rust project, see Creating a Rust project.
Procedure
To build the project in release mode, run:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo build --release'
$ scl enable rust-toolset-1.66 'cargo build --release'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo build --release
$ cargo build --release
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo build --release
$ cargo build --release
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- To verify that your Rust program can be build when you do not need to build an executable file, run:
cargo check
$ cargo check
2.6. Running a Rust program Copy linkLink copied to clipboard!
Run your Rust project using the Cargo build tool. Cargo first rebuilds your project and then runs the resulting executable file. If used during development, the cargo run
command correctly resolves the output path independently of the build mode.
Prerequisites
-
A built Rust project.
For information on how to build a Rust project, see Building a Rust project.
Procedure
To run a Rust program managed as a project by Cargo, run in the project directory:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo run'
$ scl enable rust-toolset-1.66 'cargo run'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo run
$ cargo run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo run
$ cargo run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
If your program has not been built yet, Cargo builds your program before running it.
2.7. Testing a Rust project Copy linkLink copied to clipboard!
Test your Rust program using the Cargo build tool. Cargo first rebuilds your project and then runs the tests found in the project. Note that you can only test functions that are free, monomorphic, and take no arguments. The function return type must be either ()
or Result<(), E> where E: Error
.
By default, Rust projects are tested in debug mode. For information on testing your project in release mode, see Testing a Rust project in release mode.
Prerequisites
-
A built Rust project.
For information on how to build a Rust project, see Building a Rust project.
Procedure
-
Add the test attribute
#[test]
in front of your function. To run tests for a Rust project managed by Cargo, run in the project directory:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo test'
$ scl enable rust-toolset-1.66 'cargo test'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo test
$ cargo test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo test
$ cargo test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8. Testing a Rust project in release mode Copy linkLink copied to clipboard!
Test your Rust program in release mode using the Cargo build tool. Release mode is optimizing your source code and can therefore increase compilation time while ensuring that the compiled binary will run faster. Use this mode to produce optimized artifacts suitable for release and production.
Cargo first rebuilds your project and then runs the tests found in the project. Note that you can only test functions that are free, monomorphic, and take no arguments. The function return type must be either ()
or Result<(), E> where E: Error
.
For information on testing your project in debug mode, see Testing a Rust project.
Prerequisites
-
A built Rust project.
For information on how to build a Rust project, see Building a Rust project.
Procedure
-
Add the test attribute
#[test]
in front of your function. To run tests for a Rust project managed by Cargo in release mode, run in the project directory:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo test --release'
$ scl enable rust-toolset-1.66 'cargo test --release'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo test --release
$ cargo test --release
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo test --release
$ cargo test --release
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9. Configuring Rust project dependencies Copy linkLink copied to clipboard!
Configure the dependencies of your Rust project using the Cargo build tool. To specify dependencies for a project managed by Cargo, edit the file Cargo.toml
in the project directory and rebuild your project. Cargo downloads the Rust code packages and their dependencies, stores them locally, builds all of the project source code including the dependency code packages, and runs the resulting executable.
Prerequisites
-
A built Rust project.
For information on how to build a Rust project, see Building a Rust project.
Procedure
-
In your project directory, open the file
Cargo.toml
. Move to the section labelled
[dependencies]
.
Each dependency is listed on a new line in the following format:crate_name = version
crate_name = version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Rust code packages are called crates.
- Edit your dependencies.
Rebuild your project by running:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo build'
$ scl enable rust-toolset-1.66 'cargo build'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo build
$ cargo build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo build
$ cargo build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Run your project by using the following command:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo run'
$ scl enable rust-toolset-1.66 'cargo run'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo run
$ cargo run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo run
$ cargo run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10. Building documentation for a Rust project Copy linkLink copied to clipboard!
Use the Cargo tool to generate documentation from comments in your source code that are marked for extraction. Note that documentation comments are extracted only for public functions, variables, and members.
Prerequisites
-
A built Rust project.
For information on how to build a Rust project, see Building a Rust project. -
Configured dependencies.
For more information on configuring dependencies, see Configuring Rust project dependencies.
Procedure
-
To mark comments for extraction, use three slashes
///
and place your comment in the beginning of the line it is documenting.
Cargo supports the Markdown language for your comments. To build project documentation using Cargo, run in the project directory:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo doc --no-deps'
$ scl enable rust-toolset-1.66 'cargo doc --no-deps'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo doc --no-deps
$ cargo doc --no-deps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo doc --no-deps
$ cargo doc --no-deps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
The generated documentation is located in the .target/doc
directory.
2.11. Compiling code into a WebAssembly binary with Rust on Red Hat Enterprise Linux 8 and Red Hat Enterprise Linux 9 Beta Copy linkLink copied to clipboard!
Complete the following steps to install the WebAssembly standard library.
Prerequisites
-
Rust Toolset is installed.
For more information, see Installing Rust Toolset.
Procedure
To install the WebAssembly standard library, run:
On Red Hat Enterprise Linux 8:
yum install rust-std-static-wasm32-unknown-unknown
# yum install rust-std-static-wasm32-unknown-unknown
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
dnf install rust-std-static-wasm32-unknown-unknown
# dnf install rust-std-static-wasm32-unknown-unknown
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
To use WebAssembly with Cargo, run:
On Red Hat Enterprise Linux 8:
cargo <command> --target wasm32-unknown-unknown
# cargo <command> --target wasm32-unknown-unknown
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace <command> with the Cargo command you want to run.
On Red Hat Enterprise Linux 9:
cargo <command> --target wasm32-unknown-unknown
# cargo <command> --target wasm32-unknown-unknown
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace <command> with the Cargo command you want to run.
2.12. Vendoring Rust project dependencies Copy linkLink copied to clipboard!
Create a local copy of the dependencies of your Rust project for offline redistribution and reuse using the Cargo build tool. This procedure is called vendoring project dependencies. The vendored dependencies including Rust code packages for building your project on a Windows operating system are located in the vendor
directory. Vendored dependencies can be used by Cargo without any connection to the internet.
Prerequisites
-
A built Rust project.
For information on how to build a Rust project, see Building a Rust project. -
Configured dependencies.
For more information on configuring dependencies, see Configuring Rust project dependencies.
Procedure
To vendor your Rust project with dependencies using Cargo, run in the project directory:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo vendor'
$ scl enable rust-toolset-1.66 'cargo vendor'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo vendor
$ cargo vendor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo vendor
$ cargo vendor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapter 3. The rustfmt formatting tool Copy linkLink copied to clipboard!
With the rustfmt
formatting tool, you can automatically format the source code of your Rust programs. You can use rusftmt
either as a standalone tool or with Cargo.
3.1. Installing rustfmt Copy linkLink copied to clipboard!
Complete the following steps to install the rustfmt
formatting tool.
Prerequisites
-
Rust Toolset is installed.
For more information, see Installing Rust Toolset.
Procedure
Run the following command to install rustfmt
:
On Red Hat Enterprise Linux 7:
yum install rust-toolset-1.66-rustfmt
# yum install rust-toolset-1.66-rustfmt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
yum install rustfmt
# yum install rustfmt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
dnf install rustfmt
# dnf install rustfmt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. Using rustfmt as a standalone tool Copy linkLink copied to clipboard!
Use rustfmt
as a standalone tool to format a Rust source file and all its dependencies. As an alternative, use rustfmt
with the Cargo build tool. For more information, see Using rustfmt with Cargo.
Prerequisites
-
An existing Rust project.
For information on how to create a Rust project, see Creating a Rust project.
Procedure
To format a Rust source file using rustfmt
as a standalone tool, run the following command:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'rustfmt <source-file>'
$ scl enable rust-toolset-1.66 'rustfmt <source-file>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<source_file>
with the name of your source file.
Alternatively, you can replace<source_file>
with standard input.rustfmt
then provides its output in standard output.
-
Replace
On Red Hat Enterprise Linux 8:
rustfmt <source-file>
$ rustfmt <source-file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<source_file>
with the name of your source file.
Alternatively, you can replace<source_file>
with standard input.rustfmt
then provides its output in standard output.
-
Replace
On Red Hat Enterprise Linux 9:
rustfmt <source-file>
$ rustfmt <source-file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<source_file>
with the name of your source file.
Alternatively, you can replace<source_file>
with standard input.rustfmt
then provides its output in standard output.
-
Replace
By default, rustfmt
modifies the affected files without displaying details or creating backups. To display details and create backups, run rustfmt
with the --write-mode value
.
3.3. Using rustfmt with the Cargo build tool Copy linkLink copied to clipboard!
Use the rustfmt
tool with Cargo to format a Rust source file and all its dependencies.
As an alternative, use rustfmt
as a standalone tool. For more information, see Using rustfmt as a standalone tool.
Prerequisites
-
An existing Rust project.
For information on how to create a Rust project, see Creating a Rust project.
Procedure
To format all source files in a Cargo code package, run the following command:
On Red Hat Enterprise Linux 7:
scl enable rust-toolset-1.66 'cargo fmt'
$ scl enable rust-toolset-1.66 'cargo fmt'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 8:
cargo fmt
$ cargo fmt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On Red Hat Enterprise Linux 9:
cargo fmt
$ cargo fmt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
To change the rustfmt
formatting options, create the configuration file rustfmt.toml
in the project directory and add your configurations to the file.
Chapter 4. Container images with Rust Toolset on RHEL 8 Copy linkLink copied to clipboard!
On RHEL 8, you can build your own Rust Toolset container images on top of Red Hat Universal Base Images (UBI) containers using Containerfiles.
4.1. Creating a container image of Rust Toolset on RHEL 8 Copy linkLink copied to clipboard!
On RHEL 8, Rust Toolset packages are part of the Red Hat Universal Base Images (UBIs) repositories. To keep the container size small, install only individual packages instead of the entire Rust Toolset.
Prerequisites
-
An existing Containerfile.
For more information on creating Containerfiles, see the Dockerfile reference page.
Procedure
- Visit the Red Hat Container Catalog.
- Select a UBI.
- Click Get this image and follow the instructions.
- To create a container containing Rust Toolset, add the following lines to your Containerfile:
FROM registry.access.redhat.com/ubi8/ubi:latest RUN yum install -y rust-toolset
FROM registry.access.redhat.com/ubi8/ubi:latest
RUN yum install -y rust-toolset
- To create a container image containing an individual package only, add the following lines to your Containerfile:
RUN yum install <package-name>
RUN yum install <package-name>
-
Replace
<package_name>
with the name of the package you want to install.
Chapter 5. Changes in Rust 1.66.1 Toolset Copy linkLink copied to clipboard!
Rust Toolset has been updated from version 1.62.1 to 1.66.1 on RHEL 7, RHEL 8, and RHEL 9.
Notable changes include:
-
The
thread::scope
API creates a lexical scope in which local variables can be safely borrowed by newly spawned threads, and those threads are all guaranteed to exit before the scope ends. -
The
hint::black_box
API adds a barrier to compiler optimization, which is useful for preserving behavior in benchmarks that might otherwise be optimized away. -
The
.await
keyword now makes conversions with theIntoFuture
trait, similar to the relationship betweenfor
andIntoIterator
. - Generic associated types (GATs) allow traits to include type aliases with generic parameters, enabling new abstractions over both types and lifetimes.
-
A new
let
-else
statement allows binding local variables with conditional pattern matching, executing a divergentelse
block when the pattern does not match. -
Labeled blocks allow
break
statements to jump to the end of the block, optionally including an expression value. -
rust-analyzer
is a new implementation of the Language Server Protocol, enabling Rust support in many editors. This replaces the formerrls
package, but you might need to adjust your editor configuration to migrate torust-analyzer
. -
Cargo has a new
cargo remove
subcommand for removing dependencies fromCargo.toml
.