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 #173

New Features

  • #8927 Take into account #![recursion_limit] which controls the maximum depth of macro expansions. This fixes some unresolved references when using such crates as async-std and tokio. If you don’t want/need to expand macros to full depth, you can adjust Maximum recursion limit for macro expansion in Advanced Settings.

  • #8934 Add clippy::all group to lint compeltion suggestions (by @Kobzol)

  • #8900 Remove Old Macro Expansion Engine option

Performance Improvements

  • #8955 Reduce memory usage by trait implementation metadata since it’s extensively cached and thus bloat old generation heap space a lot


  • #8957 Take into account impls for macro types. For example, impl foo!() { fn bar(&self) {} }

  • #8952 Complete more methods when auto dereference occurs

  • #8950 Consider methods in impls for a reference (&Foo) when the receiver is not a reference type

  • #8943 Consider negative impls (e.g. impl !Sync for T {}) in type inference

Internal Improvements

  • #8919 Implement a new approach to better detect changes that possibly affect the project model. It’s disabled by default for now.

  • #8926 Increase Kotlin language level to 1.7 and API level to 1.6. So now it’s possible to use all language features added in Kotlin 1.7 and any API from stdlib added in Kotlin 1.6

The full set of changes can be found here