Rust是一种流行的系统编程语言。它已经连续五年被Stack Overflow评为年度最受欢迎的编程语言。Rust是一种具有最小运行时间的编译语言,其丰富的类型系统和所有权模型保证了内存安全和线程安全,有助于编写高性能和可靠的软件。它以其新颖的安全保证和速度在业界掀起了一场风暴。然而,考虑到Rust的一些特性的时效性,用户经常发现它很难学,尤其是与同一领域的其他语言相比。
Rust的静态分析生态系统在很大程度上被rust-clippy ,有400多个lints。那么,为什么要用DeepSource呢?
在DeepSource,我们以社区已经带来的创新为基础,使静态分析的结果对你来说更易于管理和操作。我们保证问题中的假阳性率低于5%,帮助你在每个提交和拉动请求上连续运行分析,并有一个几乎即时的配置。
在这个测试版中,Rust分析器可以检测到50多种不同类型的问题,包括性能障碍、错误风险、反模式和风格问题。最重要的是,DeepSource的Rust分析器只需点击一个按钮就能自动修复你代码库中的各种问题!
问题样本
下面是Rust分析器可以检测(并自动修复!)的几个问题的例子。
fold 方法调用有更多可读的 替代品std
let _ = (0..5).fold(false, |acc, x| acc || x > 2);
// is better written as
let _ = (0..5).any(|x| x > 2);
对使用字符串字头而不是静态字符串的std::env 函数的调用
std::env::var("RUST_BACKTRACE");
// elsewhere ...
std::env::remove_var("RUST_BACKTRCAE"); // oops, misspelled
// prefer using static strings
static RUST_BACKTRACE: &str = "RUST_BACKTRACE";
std::env::var(RUST_BACKTRACE);
std::env::remove_var(RUST_BACKTRACE);
开始使用Rust分析器
开始使用Rust分析器几乎太容易了。如果你已经使用DeepSource,只需在[[analyzers]] 表中添加一个新条目,如果没有,只需在你的版本库根中包含以下TOML文件作为.deepsource.toml:
version = 1
[[analyzers]]
name = "rust"
enabled = true
前往DeepSource仪表板,激活你的版本库。或者,在使用配置生成器后,从仪表板上激活你的Rust版本库即可。
我们正在不断改进性能和分析质量。试试吧,并在Twitter上告诉我们你的想法。如果您有任何疑问,请随时在讨论论坛或DeepSource用户组与我们联系。DeepSource的Rust Analyzer保证假阳性率低于5%。如果你在分析器检测到的问题中发现了假阳性,请务必报告,我们会给你答复。