Rust Rover users: how do you rate it?

So far I've used rust analyser with vscode and I find it on the whole quite capable. Though I do struggle with debugging, I tend to reach for println debugging more than I'd like to.

I heard a bit about rust rover when they first announced it and thought it was worth checking in on how people have found it. Do you still use it? Any tips on setting it up? Any bugs/issues that have been a problem for you, or were a problem but are now fixed? Do you recommend it? Should I switch from vscode?

P.S I noticed that there is a download page for the Early Access Program version that is free (no subscription required). So I don't really have an excuse not to try it. Plus they offer a free license for non-commercial use.

Just so you know, I'm an amateur Rust coder.

I use RustRover exclusively and highly recommend it. It's still in development, so there are a few issues that need to be taken care of, but I haven't run across anything large or major that needs to be fixed. Jetbrains also has an AI associated with RustRover. I pay $10/month so I can use it and I use it a lot. It will answer most questions with examples included. (Although, as with all AI generated code, thoroughly check it out before including it in your project. It does get it wrong on occasion, which is to be expected with AI's.) The AI is also very good, if you ask it, at presenting explanations for some of Rust's harder to understand features. I wish I'd had it around when I was first starting to learn Rust.

So, go ahead and install it. You'll likely find it easier to use than your current VSCode-RustAnalyser combo. Once you get it set up, give the AI a try. I'm pretty sure you'll like it.

3 Likes

I tried it a few weeks ago and it is a mixed bag at this point:

  • + Has extra refactors like "move function to a other file". Some other refactors are more flexible or advanced.
  • - Refactors like extract function sometimes generate non-compiling code (usually easy to fix, broken signature for an async function for example)
  • - "Inspect code" (which is good in their Python IDE) seems quite alpha, reporting incoherent issues or tripping up on the somwhat recently stabilised assert in const blocks syntax.
  • - Vscode has more plugins, which may be relevant if you need additional things than just Rust. For example I use Rune as an embedded scripting language in my rust program. No syntax highlighting for that in RustRover.
  • - Yet another set of key bindings. Since I use vscode at work for C++ that is just a bit too annoying. Can be worked around with customising the key map, or using CLion for work. Not worth the effort in this case (since I decided to go back anyway).

In the end I went back to vscode, but kept rust rover installed for when I do need those refactors.

4 Likes

Did anyone happen to notice whether RustRover uses more or less memory than vscode (for the same project of course)?

I'd been using IntelliJ Ultimate with the open-source Rust plugin until their change to the in-house Rust plugin and RustRover. Since then, I've worked with both IntelliJ and RustRover on a daily basis.

Functionally, they're the same when it comes to Rust. IntelliJ has a larger memory footprint, probably due to all the extra plugins and support of Java/Kotlin projects. The licencing is different, though. As you said, RustRover is free for non-commercial projects, while IntelliJ requires the paid Ultimate version to work correctly with Rust.

There's nothing special about the setup, but here are a few tips:

  • The first time you start it, it shows a simple window. Create a new Rust project (binary or lib) or open an existing one to see the full GUI. Just open the root directory if you have a VSCode project; it's fine.
  • I recommend using the Classic UI plugin (Ctrl+Alt+S to access the settings, then Plugins) because the new UI is very annoying. Unless you like it, of course.
  • It should detect your Rust environment, otherwise it'll tell you what's missing. For example, with Windows, you'll need to download an extra module for debugging, but it tells you that the first time and proposes to do it itself, so it's very easy.
  • You'll find all the Rust options in the settings (you can type the first letters to find them more easily).
  • There's an online user manual from the Help menu, if that helps, but don't hesitate to ask here if you're stuck somewhere. :slight_smile:
  • Try to learn a few keyboard shortcuts to be more efficient - you can print them with this plugin.

The IDE's overall satisfactory, and I much prefer it to VSCode, but I suspect it's in part a matter of personal preference. It's a true IDE, unlike VSCode, so its features are fully integrated and coherent, accessible through menus and shortcuts, and all the settings are available through the GUI, too. No need to hack files and use StackOverflow to see how. It's even more relevant if you develop with several languages.

It's perfectly OK to use RustRover now. It has the same stability as IntelliJ, but there are a large number of bugs, for sure. Thankfully, they're usually mostly cosmetic or minor annoyances, but sometimes, you may need to clear the caches to fix a weird behaviour. There's a good refactorization system, integrated unit tests, build, and other common Cargo flows, and you can launch any other cargo through a menu or CLI.

The main problem I have with it is the debugger, and it's worse with Windows than Linux:

  • The variables' content isn't always/often accessible where they should be when doing step-by-step debugging. Often, you must execute a few more lines, or sometimes it's never available. I often resort to println! statements to debug. Sometimes, it's better with VSCode, but not always.
  • The formatting of the variable content, when it's available, is sometimes obscure. In Windows, you can't see clearly an Option<T>. You have to guess and unfold a lot of levels to see the content (in Linux, it's just been improved). Anything else than simple types doesn't show well. Again, I've seen VSCode do it better in some cases, but not always.
  • Sometimes, breakpoints just won't work. You'll have to toggle several lines to finally get it to stop.
    It all seems due to LLDB, which wasn't meant for Rust and requires an adaptation, so VSCode has its own version, and Jetbrains have theirs.

Otherwise, it's quite good at managing projects, typing code, giving very good visual code awareness (including direct detection of problems, macro expansions, type detection, ...), versioning (git, github, ...), etc. The comparison to rust-analyzer is a tie, I'd say. And it's much easier to use than VSCode for me, but in part due to knowing the tool for a while.

Use it for a month or so, and you'll get a good idea yourself. It's definitely worth trying.

(EDIT) If you need it commercially, the RustRover Commercial licence is required - to compare to IntelliJ Ultimate depending on your needs. You get a discount from the 2nd year on.

1 Like

IntelliJ should really put effort into cleaning up their message on licensing. I commonly see this confusion.

What you're linking isn't commercial license, it's enterprise license, which is a very different thing. It is for big businesses which want to centrally manage licenses for all their devs, and treat it as a business expense for tax purposes.

The personal (paid) license is already commercial. You can freely use it for any kind of commercial development, including when you work in a large organization. It's just that you need to buy it personally as an individual, and probably won't be able to treat it as a tax-deductible expense.

1 Like

They're trying a new formula for RustRover; I don't know if they intend to use it elsewhere. So it's indeed a little confusing if you're used to the previous system.

I've never seen the name Enterprise. On the product page, it's labelled For Organizations (vs Individual Use), like the other products, but when they post about it, they've always called it Commercial vs Non-Commercial licences, which better reflect the usage. So, while there's no official Jetbrains naming convention, it's as official as it gets and the correct name. For other products, as I said, you could indeed use any version commercially, even the Community Edition.

I see on that page that linked above that they mention Free or Commercial for Individual Use, now (I missed that earlier), which is much cheaper than for organizations, so scratch what I said about it being expensive. Before, you only had Non-Commercial and Commercial (requiring a VAT registration number...).

  • RustRover Non-Commercial – Free
  • RustRover Commercial For Individual Use – $69/year (New:exclamation:)
  • RustRover Commercial For Organizations – $229/year