Rust-开发环境-开发三年我从VSCode转到了RustRover
时间:2026-08-20 22:11:32 473浏览 收藏
前言
博主在最近的开发过程当中由于一些原因尝试使用了RustRover。在最一开始,我还在VSCode和RustRover混着使用,而到后来就常驻在RustRover了。本文主要介绍下RustRover这款由JetBrains开发的Rust专用IDE,并且阐述为什么博主将工作环境由VSCode转到RustRover。
什么是RustRover
JetBrains自2000年成立以来,旗下产品很多开发者基本都不陌生。无论是面向 Ja va 的 IDEA、面向 Python 的 PyCharm,还是 C/C++ 开发常用的 CLion,都积累了相当高的人气,另外像 WebStorm、GoLand 等产品也同样有不少拥趸。至于 RustRover,则是 JetBrains 专门为 Rust 语言推出的一款 IDE,支持代码补全、自动添加依赖,以及运行、调试、测试等一整套能力。对于已经习惯 JetBrains 全家桶的开发者来说,这套界面和交互上手起来也会格外顺手。
RustRover可以通过上下文感知来进行代码补全,同时支持快速修复、智能重构等功能。
支持快速修复、以及自动添加所需的crate到依赖项列表。
支持显示宏展开,快速访问语言和crate文档,以及“JetBrains式”的搜索功能。
成熟的运行、调试、测试和分析代码界面。
成熟的项目管理以及依赖项管理功能。
Rust IDE的发展历程
对大多数Rust开发者来说,最早上手的IDE往往都是VSCode。它对Rust的支持并不是原生内置的,而是主要依赖社区持续维护的扩展来完成。比如更早一阶段常见的 Rust for Visual Studio Code,再到现在几乎成了主流选择的 Rust Analyzer,都为开发过程补上了相当完整的一套能力:代码补全、定义跳转、类型显示、符号搜索、快速修复,以及测试和编译等功能,基本都覆盖到了。
2023年9月,VSCode + Rust Analyzer的地位出现了新的挑战者。JetBrains正式推出RustRover,最初发布时,其还存在一些功能局限,且只有单一的商业订阅选项。2024.2版本的更新则是一个重要的里程碑,根据社区的反馈建议,其引入了对Web前端技术和数据库的支持,极大扩展了应用范围。同时提供了个人商业用途和组织商业用途选项,降低了开发者的使用成本。此外,该版本还支持了简体中文UI、代码补全等功能。后续包括fmt等功能的持续改进,使得越来越多的开发者开始关注RustRover。
转向RustRover的契机
最近,我将我的项目开发环境已经基本转为了RustRover。在此之前,由于长期在写C、Rust的项目,我一直是坚定(?)的VSCoder。直到最近,我突然出现了一起诡异的开发卡点:在一个复杂项目里,我新增的依赖项无法被Rust Analyzer索引到了。不知道大家有没有经历过这么一个崩溃的瞬间,你无论敲出这个依赖项的任何一个函数或者结构体,你都无法使用代码补全功能,也无法被Rust Analyzer正确推理出当前由这个依赖项函数所返回的类型,这一刻我像突然不知道怎么走路。
这时我突然想到可以使用RustRover试试。由于博主入职新公司,换了一个mac的开发机,这台新电脑还没有装过RustRover。在以前,我也偶尔会使用IDEA来写Rust,其实是一个很奇妙的事情,不过我非常喜欢其帮忙分析重复项代码、以及智能重构的功能。因此我之前在主力使用VSCode时,偶尔也会使用JetBrains系IDE来帮忙分析我的Rust代码。而这次纯粹是死马当活马医了。没想到的是,使用RustRover非常顺利的索引到了依赖项,这使得我又可以再次骑上快马,写好代码。
投向RustRover的怀抱
在之后,我不得不开始审视我应该选择哪个IDE来进行我后续的开发工作。不得不这么做的原因是IDE真的会吃掉非常大的内存,无论是Rust Analyzer还是RustRover,内存的占用都是以GB为单位的。我们简单比较下VSCode和RustRover的区别。
VScode. VS RustRover
| 维度 | VSCode | RustRover |
|---|---|---|
| 定位 | 轻量级编辑器,依赖扩展 | 专业 IDE,集成全功能 |
| 性能 | 轻量高效,适合低配设备 | 重型应用,对硬件要求高 |
| 功能完整性 | 基础功能足够,高级功能需插件补充 | 内置完整功能,支持 Rust 特性可视化 |
| 扩展性 | 社区扩展丰富,高度自定义 | 官方插件为主,扩展性较弱 |
| 价格 | 完全免费 | 非商业免费,商业需付费 |
| 适合场景 | 个人开发、开源项目、轻量需求 | 企业开发、复杂项目、追求效率 |
| 学习成本 | 低(界面简洁,配置灵活) | 高(功能复杂,需适应 IntelliJ 体系) |
VSCode本身被开发者们还是定义为轻量级编辑器,扩展由你自由选择。这样的好处就是,当你不需要太多插件功能时,你能够轻量的开发并运行你的IDE,你可以进行随意组合。但是坏处就是有时把这些插件全都加上,我觉得会变得更加的笨重。同时作为插件扩展,无法像RustRover一样,能够有更深入定制化的功能融合。但同时,RustRover的功能完整性,也导致RustRover即使你在开发小型项目时,也得吃你那么多的内存,有更高的硬件性能要求。
我最终选择了RustRover,综上来说,当前我的开发机能够支持我运行RustRover,同时我的项目比较复杂,我无法接受Rust Analyzer有时候的这种不确定性(刚刚提到的事故,我其实碰到过2次以上)。另外RustRover还有吸引我的地方,其实前面也有提到:
- 代码分析:可以实时帮你分析重复的代码段,对于无情重构选手来说非常有益;
- 智能重构:选中某一代码段,可以自动帮你重构为一个方法。因为我是无情重构选手;
- 依赖项管理:可以自动添加依赖项这个功能说实话只能算锦上添花,不过当时第一次用到这个功能的时候还是有小惊喜在的。而最好用的功能应该是无用依赖项分析的这个能力。如果是VSCode,你可能需要额外去安装工具来进行分析。
- 成熟的Rust IDE界面:比如鼠标悬浮自动显示宏展开(VSCode你得打开执行面板),覆盖率分析视图等等。甚至扩展插件在RustRover中也有VSCode不一样的UI适配等小惊喜。
没有银弹
RustRover并非是当前Rust IDE的最佳方案,例如前面所说,它可能会吃掉你环境更多的内存。同时一些VSCode会遇到的问题,在RustRover中也会遇到,例如有时候无法正确识别build的out_dir路径,调试时无法正确的停留在断点处,代码分析也时常会误报等等,这些仍然是Rust IDE仍然可以优化的空间(别吃那么多硬件资源也是好的)。还有,像自动添加依赖项这个有些炫技的小技巧,也仅支持“流行的”crate,其实也说明了RustRover的一些功能也并非是万能好用的。
结语
这就是本篇内容的所有分享,分享此篇主要还是希望能够让更多开发者了解到,Rust IDE已经并非只有VSCode + Rust Analyzer这一套开发方案。RustRover发展至今已经足够好用,并且在一些场景可能更适合你当前正在开发的项目。如果有对上述提到的RustRover中的一些优点感兴趣的朋友,不妨尝试使用起来:)Rust IDE到目前也还是有极大发展的空间,希望开发生态能够越来越好,让更多开发者享受到便利。
-
415 收藏
-
269 收藏
-
309 收藏
-
444 收藏
-
306 收藏
-
311 收藏
-
297 收藏
-
445 收藏
-
445 收藏
-
452 收藏
-
129 收藏
-
496 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习