Rust with Visual Studio Code (2023)

Rust is a powerful programming language, often used for systems programming where performance and correctness are high priorities. If you are new to Rust and want to learn more, The Rust Programming Language online book is a great place to start. This topic goes into detail about setting up and using Rust within Visual Studio Code, with the rust-analyzer extension.

Rust with Visual Studio Code (1)

Note: There is also another popular Rust extension in the VS Code Marketplace (extension ID: rust-lang.rust) but this extension is deprecated and rust-analyzer is the recommended VS Code Rust extension by rust-lang.org.

Installation

1. Install Rust

First you will need to have the Rust toolset installed on your machine. Rust is installed via the rustup installer, which supports installation on Windows, macOS, and Linux. Follow the rustup installation guidance for your platform, taking care to install any extra tools required to build and run Rust programs.

Note: As with installing any new toolset on your machine, you'll want to make sure to restart your terminal/Command Prompt and VS Code instances to use the updated toolset location in your platform's PATH variable.

2. Install the rust-analyzer extension

You can find and install the rust-analyzer extension from within VS Code via the Extensions view (⇧⌘X (Windows, Linux Ctrl+Shift+X)) and searching for 'rust-analyzer'. You should install the Release Version.

Rust with Visual Studio Code (2)

We'll discuss many of rust-analyzer features in this topic but you can also refer to the extension's documentation at https://rust-analyzer.github.io.

Check your installation

After installing Rust, you can check that everything is installed correctly by opening a new terminal/Command Prompt, and typing:

rustc --version

which will output the version of the Rust compiler. If you want more details, you can add the --verbose argument. If you run into problems, you can consult the Rust installation guide.

You can keep your Rust installation up to date with the latest version by running:

rustup update

There are new stable versions of Rust published every 6 weeks so this is a good habit.

Local Rust documentation

When you install Rust, you also get the full Rust documentation set locally installed on your machine, which you can review by typing rustup doc. The Rust documentation, including The Rust Programming Language and The Cargo Book, will open in your local browser so you can continue your Rust journey while offline.

Hello World

Cargo

When you install Rust with rustup, the toolset includes the rustc compiler, the rustfmt source code formatter, and the clippy Rust linter. You also get Cargo, the Rust package manager, to help download Rust dependencies and build and run Rust programs. You'll find that you end up using cargo for just about everything when working with Rust.

(Video) LIVE 🔴: Getting started with Rust in VS Code

Cargo new

A good way to create your first Rust program is to use Cargo to scaffold a new project by typing cargo new. This will create a simple Hello World program along with a default Cargo.toml dependency file. You pass cargo new the folder where you'd like to create the project.

Let's create Hello World. Navigate to a folder where you'd like to create your project and type:

cargo new hello_world

To open your new project in VS Code, navigate into the new folder and launch VS Code via code .:

cd hello_worldcode .

Note: Enable Workspace Trust for the new folder as you are the author. You can enable Workspace Trust for your entire project folder parent to avoid being prompted when you create new projects by checking the option to Trust the authors of all the files in parent folder 'my_projects`.

cargo new creates a simple Hello World project with a main.rs source code file and Cargo.toml Cargo manifest file.

src\ main.rs.gitignoreCargo.toml

main.rs has the program's entry function main() and prints "Hello, world!" to the console using println!.

fn main() { println!("Hello, world!");}

This simple Hello World program doesn't have any dependencies but you would add Rust package (crate) references under [dependencies].

Cargo build

Cargo can be used to build your Rust project. Open a new VS Code integrated terminal (⌃⇧` (Windows, Linux Ctrl+Shift+`)) and type cargo build.

cargo build

Rust with Visual Studio Code (3)

You will now have target\debug folder with build output include an executable called hello_world.exe.

Running Hello World

Cargo can also be used to run your Rust project via cargo run.

cargo run

You can also run hello_world.exe manually in the terminal by typing .\target\debug\hello_world.

Rust with Visual Studio Code (4)

IntelliSense

IntelliSense features are provided by the Rust language server, rust-analyzer, which provides detailed code information and smart suggestions.

When you first open a Rust project, you can watch rust-analyzer's progress in the lower left of the Status bar. You want to wait until rust-analyzer has completely reviewed your project to get the full power of the language server.

Rust with Visual Studio Code (5)

(Video) Getting Started with Rust on Windows and Visual Studio Code

Inlay hints

One of the first things you may notice is rust-analyzer providing inlay hints to show inferred types, return values, named parameters in light text in the editor.

Rust with Visual Studio Code (6)

While inlay hints can be helpful for understanding your code, you can also disable the feature via the Editor > Inlay Hints: Enabled setting (editor.inlayHints.enabled) or use the Rust Analyzer: Toggle Inlay Hints command to hide or display this extra information.

Hover information

Hovering on any variable, function, type, or keyword will give you information on that item such as documentation, signature, etc. You can also jump to the type definition in your own code or the standard Rust libraries.

Rust with Visual Studio Code (7)

Auto completions

As you type in a Rust file, IntelliSense provides you with suggested completions and parameter hints.

Rust with Visual Studio Code (8)

Tip: Use ⌃Space (Windows, Linux Ctrl+Space) to trigger the suggestions manually.

Semantic syntax highlighting

rust-analyzer is able to use semantic syntax highlighting and styling due to its rich understanding of a project source code. For example, you may have noticed that mutable variables are underlined in the editor.

Rust with Visual Studio Code (9)

Being able to quickly tell which Rust variables are mutable or not can help your understanding of source code, but you can also change the styling with VS Code editor.semanticTokenColorCustomizations setting in your user settings.

In settings.json, you would add:

{ "editor.semanticTokenColorCustomizations": { "rules": { "*.mutable": { "fontStyle": "", // set to empty string to disable underline, which is the default }, } },}

You can learn more about rust-analyzer's semantic syntax customizations in the Editor features section of the rust-analyzer documentation.

Code navigation

Code navigation features are available in the context menu in the editor.

  • Go to Definition F12 - Go to the source code of the type definition.
  • Peek Definition ⌥F12 (Windows Alt+F12, Linux Ctrl+Shift+F10) - Bring up a Peek window with the type definition.
  • Go to References ⇧F12 (Windows, Linux Shift+F12) - Show all references for the type.
  • Show Call Hierarchy ⇧⌥H (Windows, Linux Shift+Alt+H) - Show all calls from or to a function.

You can navigate via symbol search using the Go to Symbol commands from the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)).

  • Go to Symbol in File - ⇧⌘O (Windows, Linux Ctrl+Shift+O)
  • Go to Symbol in Workspace - ⌘T (Windows, Linux Ctrl+T)

Linting

The Rust toolset includes linting, provided by rustc and clippy, to detect issues with your source code.

(Video) Debugging Rust with Visual Studio Code

Rust with Visual Studio Code (10)

The rustc linter, enabled by default, detects basic Rust errors, but you can use clippy to get more lints. To enable clippy integration in rust-analyzer, change the Rust-analyzer > Check: Command (rust-analyzer.check.command) setting to clippy instead of the default check. The rust-analyzer extension will now run cargo clippy when you save a file and display clippy warnings and errors directly in the editor and Problems view.

Quick Fixes

When the linter finds errors and warnings in your source code, rust-analyzer can often provide suggested Quick Fixes (also called Code Actions), which are available via a light bulb hover in the editor. You can quickly open available Quick Fixes via the ⌘. (Windows, Linux Ctrl+.).

Rust with Visual Studio Code (11)

Refactoring

Due to rust-analyzer's semantic understanding of your source code, it can also provide smart renames, across your Rust files. With your cursor on a variable, select Rename Symbol from the context menu, Command Palette, or via F2.

The rust-analyzer extension also supports other code refactorings and code generation, which the extension calls Assists.

Here are just a few of the refactorings available:

  • Convert if statement to guarded return
  • Inline variable
  • Extract function
  • Add return type
  • Add import

Formatting

The Rust toolset includes a formatter, rustfmt, which can format your source code to conform to Rust conventions. You can format your Rust file using ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I) or by running the Format Document command from the Command Palette or the context menu in the editor.

You also have the option to run the formatter on each save (Editor: Format On Save) or paste (Format On Paste) to keep your Rust code properly formatted automatically while you are working.

Debugging

The rust-analyzer extension supports debugging Rust from within VS Code.

Install debugging support

To start debugging, you will first need to install one of two language extension with debugging support:

  • Microsoft C++ (ms-vscode.cpptools)
  • CodeLLDB (vadimcn.vscode-lldb)

If you forget to install one of these extensions, rust-analyzer will provide a notification with links to the VS Code Marketplace when you try to start a debug session.

Rust with Visual Studio Code (12)

Using Rust Analyzer: Debug

The rust-analyzer extension has basic debugging support via the Rust Analyzer: Debug command available in the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) and the Run|Debug CodeLens in the editor.

Let's debug the Hello World program, we created earlier. First we will set a breakpoint in main.rs.

  1. You'll need to enable the setting Debug: Allow Breakpoints Everywhere, which you can find in the Settings editor (⌘, (Windows, Linux Ctrl+,)) by searching on 'everywhere`.

    (Video) Install Rust and start coding with it on VSCode [ EASIEST METHOD ]

    Rust with Visual Studio Code (13)

  2. Open main.rs and click the left gutter in the editor to set a break point on the println! line. It should display as a red dot.

    Rust with Visual Studio Code (14)

  3. To start debugging, use either the Rust Analyzer: Debug command or select the Debug CodeLens about main().

    Rust with Visual Studio Code (15)

Next steps

This has been a brief overview showing the rust-analyzer extension features within VS Code. For more information, see the details provided in the Rust Analyzer extension User Manual, including how to tune specific VS Code editor configurations.

To stay up to date on the latest features/bug fixes for the rust-analyzer extension, see the CHANGELOG. You can also try out new features and fixes by installing the rust-analyzer Pre-Release Version available in the Extensions view Install dropdown.

If you have any issues or feature requests, feel free to log them in the rust-analyzer extension GitHub repo.

If you'd like to learn more about VS Code, try these topics:

  • Basic Editing - A quick introduction to the basics of the VS Code editor.
  • Install an Extension - Learn about other extensions are available in the Marketplace.
  • Code Navigation - Move quickly through your source code.

Common questions

Linker errors

If you see linker errors such as "error: linker link.exe not found" when you try to build your Rust program, you may be missing the necessary C/C++ toolset. Depending on your platform, you will need to install a toolset with a C/C++ linker to combine the Rust compiler output.

Windows

On Windows, you will need to also install Microsoft C++ Build Tools in order to get the C/C++ linker link.exe. Be sure to select the Desktop Development with C++ when running the Visual Studio installer.

Note: You can use the C++ toolset from Visual Studio Build Tools along with Visual Studio Code to compile, build, and verify any codebase as long as you also have a valid Visual Studio license (either Community, Pro, or Enterprise).

macOS

You may need to install the XCode toolset by running xcode-select --install in a terminal.

Linux

(Video) IDE Setup For Rust Development

You may need to install the GCC toolset via the build-essential package by running sudo apt-get install build-essential in a terminal.

For further troubleshooting advice, refer to the Rust installation guide.

4/26/2022

FAQs

Can you code Rust in Visual Studio? ›

On Windows, Rust requires certain C++ build tools. You can either download the Microsoft C++ Build Tools, or (recommended) you might prefer just to install Microsoft Visual Studio.

How to install Rust in Visual Studio Code? ›

To install the Rust extension in VS Code follow the following steps: Step 1: Open Visual Studio Code. Step 2: Go to the Extension panel and install the rust-analyzer extension by clicking on the Install button or we can use Ctrl+Shift+X. Step 3: For Debugging support install the CodeLLdb Extension by extension menu.

How do I create a new Rust project in Visual Studio code? ›

Create a new project using Cargo.

Open rust file main.rs found under the src folder and you should be prompted to install rust extension — click on Yes to proceed. Warning should now automatically disappear. Edit main.rs file adding variable to be displayed in output string.

How do I format Rust code in VS Code? ›

You can format your Rust file using Ctrl+Shift+I or by running the Format Document command from the Command Palette or the context menu in the editor.

Is Rust easier than C++? ›

C++ may be more forgiving to beginners. Rust features unique concepts not present in other programming languages—like ownership and borrowing. Rust often requires unlearning many patterns from other languages, which could make it easier to learn for the less experienced developer with less 'baggage' to shed.

Is Rust as fast as C++? ›

Rust incorporates a memory ownership model enforced at a compile time. Since this model involves zero runtime overhead, programs written in Rust are not only memory-safe but also fast, leading to performance comparable to C and C++.

What IDE can I use for Rust? ›

Visual Studio Code remains the IDE most commonly used for Rust development (40%), followed by CLion (24%) and IntelliJ IDEA (19%).

Is Rust as easy as Python? ›

Which language is easier to learn? Rust is a more demanding language than Python. Its syntax is closer to that of low-level languages. That makes it probably not the best choice as the first technology to learn.

Can I use C++ in Rust? ›

The Rust compiler can not understand C++ code. This makes it necessary to tell the Rust compiler about code you want to use on the C++ side. A bit of glue code is needed: Language bindings. Bindings define functions and data types available on the C++ side in a way that the Rust compiler can understand.

Can I make a game with Visual Studio code? ›

Visual Studio offers a great set of tools for developing DirectX games, from writing shader code and designing assets, to debugging and profiling graphics—all in the same familiar Visual Studio IDE.

Can you code games with Rust? ›

Rust also has a great capacity for game development because of its concurrency. Concurrency in Rust prevents data races and provides epic memory management to help make it impossible for your application to crash. To me, Rust is a well-designed and very clean language.

How do I compile and run Rust code? ›

Procedure to create, compile and run the program
  1. Open the notepad file and write the code in a notepad file.
  2. Save the file with . rs extension.
  3. Open the command prompt.
  4. Set the path of the directory. ...
  5. Compile the above program using the rustc command.
  6. Finally, run the program by using the command filename.exe.

Is Rust hard to code? ›

Rust is difficult. It has a complex syntax and a steep learning curve. It is designed to uniquely solve some very challenging problems in programming. However, as a beginner, using Cuda or MPI on Rust is not very simple compared to the other options like Swift and Go.

What is rust language coded in? ›

Rust is using Rust which means that all the standard compiler libraries are written in rust; there is a bit of use of the C programming language but most of it is Rust.

How is Rust coded? ›

In Rust, blocks of code are delimited by curly brackets, and control flow is annotated with keywords such as if , else , while , and for . Pattern matching is provided using the match keyword. In the examples below, explanations are given in comments, which start with // .

Should I learn Rust or C or C++? ›

Here's the big hint – go with Rustlang. Sure, C++ has the lion's share of community support, and huge libraries, but Rust language is so much better in nearly every other way. Rust teaches you to code properly, and the tough love as a beginner is definitely appreciated by those further on in their careers.

Is Rust an OOP language? ›

Rust is influenced by many different programming paradigms including OOP; we explored, for example, the features that came from functional programming in Chapter 13. Arguably, object-oriented programming languages do tend to share certain common characteristics, namely objects, encapsulation, and inheritance.

How long will it take to learn Rust? ›

Let us not beat around the bush: Rust is not easy to learn. I think it took me nearly 1 year of full-time programming in Rust to become proficient and no longer have to read the documentation every 5 lines of code.

How much do Rust developers make? ›

How much do Rust developers make? The salaries of candidates in this role range from a low of $130,000 to a high of $230,000, with a median salary of $165,000.

Is Rust closer to C or C++? ›

Rust is syntactically similar to C++, but it provides increased speed and better memory safety. Rust is a more innovative system-level language in terms of safer memory management because it does not allow dangling pointers or null pointers.

Why Rust is most loved programming language? ›

In programming, Rust is one of the most loved languages. It is a programming language focused on memory safety, protection, high performance during the processing of large amounts of data, concurrency and a highly efficient compiler.

Does Visual Studio 2022 support Rust? ›

Announced in the latest update to VS Code (the April 2022 update bringing it to v1. 67), the new Rust in Visual Studio Code topic describes Rust programming language support in VS Code with the rust-analyzer extension.

Is Rust safer than C++? ›

Rust makes it easier to write secure code than C++ does because it prioritizes safety by default. This means that certain classes of security issues are less likely to happen by accident (e.g. buffer overflows).

Will Rust overtake Python? ›

Performance is a major reason why Rust is overtaken Python. There is no virtual machine or interpreter between your code and the computer since Rust is compiled directly into machine code. Another significant advantage of Rust over Python is its thread and memory management.

Should I learn Rust Go or Python? ›

Rust is a go-to language when performance matters because it works well for processing large amounts data. It can handle CPU-intensive operations like executing algorithms, which is why Rust is more suitable than Python for systems development.

Which is the No 1 programming language? ›

JavaScript is the most common coding language in use today around the world.
...
What this language is used for:
  • Web development.
  • Game development.
  • Mobile apps.
  • Building web servers.

What is the easiest code for making games? ›

If you're new to programming, we recommend starting with Lua or Python. These languages are easy to learn and use, and they'll give you a good foundation on which to build more complex games. If you want to develop a more complicated game, you'll need to use a more powerful programming language.

Is Visual Studio Code worth using? ›

Robust and extensible architecture. Architecturally, Visual Studio Code combines the best of web, native, and language-specific technologies. Using Electron, VS Code combines web technologies such as JavaScript and Node. js with the speed and flexibility of native apps.

Is Visual Studio Code good for beginners? ›

While marketing primarily to professional programmers, VS Code is an excellent editor for students and other learner just getting started with HTML and CSS. This course focuses mainly on those students and learners who in the beginner to intermediate stages of learning to code with HTML, CSS, and JavaScript.

Is Rust good for high level programming? ›

Rust is a low-level programming language with direct access to hardware and memory, which makes it a great solution for embedded and bare-metal development. You can use Rust to write operation systems or microcontroller applications.

Is Rust better for competitive programming? ›

This is because Rust not only makes it harder to do things the wrong way, but also makes it much easier to do things the right way. As a result, I naturally find myself coding in a clearer style, even under time pressure.

Is Rust the safest programming language? ›

Well, unlike C, Rust is a safe programming language. But, like C, Rust is an unsafe programming language. More accurately, Rust contains both a safe and unsafe programming language. Rust can be thought of as a combination of two programming languages: Safe Rust and Unsafe Rust.

How much RAM do you need to run Rust? ›

Rust system requirements state that you will need at least 8 GB of RAM. If possible, make sure you have 16 GB of RAM in order to run Rust to its full potential. An Intel Core i7-3770 CPU is required at a minimum to run Rust. Whereas, an AMD Ryzen 5 1600 is recommended in order to run it.

Is Rust good for writing a compiler? ›

Rust is also a suitable language for writing compilers. The switch had got nothing to do with the quality of the language - reaching self-hosting is usually a goal for languages to reach before they release the "1.0" version.

Does Rust need a compiler? ›

Meaning “Rust is written in Rust”. What this means is that in order to get Rust onto a new platform, you must create a cross compiler on an existing supported platform, and cross-compile the Rust source code for the Rust compiler to produce a Rust compiler for the target. This is called a “stage 0 compiler”.

Can you code games in Visual Studio? ›

Visual Studio offers a great set of tools for developing DirectX games, from writing shader code and designing assets, to debugging and profiling graphics—all in the same familiar Visual Studio IDE.

Is Rust the hardest programming language? ›

Rust is difficult. It has a complex syntax and a steep learning curve. It is designed to uniquely solve some very challenging problems in programming. However, as a beginner, using Cuda or MPI on Rust is not very simple compared to the other options like Swift and Go.

Is Rust replacing C++? ›

Microsoft executive says it's time to retire the C and C++ programming languages and use Rust instead.

Is C# or C++ better for games? ›

Both C# and C++ can be used to create games. However, C++ has better control hardware on the PC or server. Therefore, it is usually a more suitable language for game development.

Are games coded in C or C++? ›

C++ is used in the source code of many major game engines, such as Unreal and Unity, allowing developers to build more high-performant games. Let's see why C++ is a better programming language for game development.

Why Rust language is not popular? ›

Small Market: Currently, there are few companies using rust. Therefore a few programmers and few job offers. I do believe the market size will increase, but if you need a massive number of developers now and it cannot afford their education — Rust is not a good choice for you now!

Is Rust like C or C++? ›

Mozilla developed Rust specifically to address shortcomings it perceived in C++, mainly inefficiencies related to memory and concurrent programming. Syntactically, Rust is very similar to C++, but most developers say that Rust is more convenient and versatile.

Should I learn C or C++ or Rust? ›

Sure, C++ has the lion's share of community support, and huge libraries, but Rust language is so much better in nearly every other way. Rust teaches you to code properly, and the tough love as a beginner is definitely appreciated by those further on in their careers.

Videos

1. Rust Programming - VSCode Extension!
(Code of the Future)
2. Rust 101 - How to set up VS Code for Rust
(Rust Ing)
3. Rust in 100 Seconds
(Fireship)
4. RUST Hello World In Visual Studio Code
(Asim Code)
5. Beginners Guide to Rust code compilation and debugging in VSCode IDE
(Prodramp)
6. Start to learn Rust Language + VS Code | Day 1
(Rust 360)
Top Articles
Latest Posts
Article information

Author: Catherine Tremblay

Last Updated: 03/22/2023

Views: 6439

Rating: 4.7 / 5 (47 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Catherine Tremblay

Birthday: 1999-09-23

Address: Suite 461 73643 Sherril Loaf, Dickinsonland, AZ 47941-2379

Phone: +2678139151039

Job: International Administration Supervisor

Hobby: Dowsing, Snowboarding, Rowing, Beekeeping, Calligraphy, Shooting, Air sports

Introduction: My name is Catherine Tremblay, I am a precious, perfect, tasty, enthusiastic, inexpensive, vast, kind person who loves writing and wants to share my knowledge and understanding with you.