IntelliJ Rust

Open-source Rust plugin for IntelliJ-based IDEs


Stable builds

IntelliJ Rust is in active development, and we regularly publish new stable builds to the JetBrains plugin repository. You can download and install them directly from Settings / Preferences | Plugins | Marketplace in your IDE.

Nightly builds

In addition to stable releases, we also ship nightly snapshots of the intellij-rust development branch. To use the nightly channel, add a custom plugin repository and set the following URL:

Compatible IDEs

The plugin is compatible with all Intellij-based IDEs like IDEA, CLion, or PyCharm. The latest plugin version supports the latest released platform version (for example, 2019.2).

Bug reports and feature requests

Please use our tracker. You can get there quickly right from the IDE: call Create New Issue on a selected piece of code, and you’ll jump to a pre-filled issue creating form.

Also feel free to ping us on Gitter.



Intelligent Rust

editor features

IntelliJ Rust brings JetBrains-quality language support and full IDE experience to your Rust workflow.

Rust becomes native to IDEA, CLion, and other IntelliJ IDEs with smart coding assistance, seamless Cargo support, and built-in test runner.

In CLion, you get even more: fully-fledged debugger, CPU profiler, and Valgrind memcheck.

What's new

IntelliJ Rust Changelog #138

New Features

  • Enable Build tool window by default. The Build tool window provides structured output for build, run and test commands. Note, this feature requires Cargo 1.48.0 or higher

    You can disable it via option in Experimental Features dialog (Help | Find Action and type Experimental features to open the dialog)

  • Provide experimental code completion ranking for Rust based on machine learning. It applies rules learned from data we have gathered anonymously during our EAPs, which results in better suggestions. Note that we have not collected any source code, only information about your interactions with the code completion UI. The ranking model is disabled by default for now. You can enable it via Editor | General | Code Completion | Machine Learning-Assisted Completion settings.
  • Update obsolete references in use groups via Move refactoring (F6). Now, when moving foo from mod1 to mod2, the outdated group import use mod1::{foo, bar}; will be replaced with the proper use mod2::foo; use mod1::bar;.

  • Add Fill missing arguments quick-fix to complete a function call arguments with default values (by @Kobzol)

  • Add the intention to change item visibility (by @Kobzol)

  • Introduce experimental Cargo.toml dependency completion based on the new local Cargo registry index. Note, the corresponding feature is disabled by default for now. You can enable it via org.rust.crates.local.index option in Experimental Features dialog (Help | Find Action and type Experimental features to open the dialog)
  • Provide highlighting of string-formatting macros from log crate, in addition to already supported macros from stdlib like println, format, etc. (by @Kobzol)

Performance Improvements

  • Speedup name resolution, especially in large Rust modules


  • Resolve derive procedural macros with new name resolution engine. Note, you can enable the new engine via Use experimental name resolution engine option in Preferences | Languages & Frameworks | Rust settings
  • Proper support for ANSI escape codes in Build tool window
  • Fix rendering of generic types in E0277 error message
  • Improve popup of Has implementations gutter icon by items sorting and allowing to open results in Find tool window
  • Do not annotate cfg-disabled trait items as missing (E0046) and do not offer them via Generate members action (by @Kobzol)
  • Parse fully qualified macro calls at top-level properly (by @msmorgan)
  • Fix inlining of function arguments (by @SaarYogev)

Full set of changes can be found here