Rust笔记 (一) 搭建开发环境

Rust 是一门强调安全、并发、高效的系统编程语言。无 GC 实现内存安全机制、无数据竞争的并发机制、无运行时开销的抽象机制,是 Rust 独特的优越特性。 它声称解决了传统 C 语言和 C++语言几十年来饱受责难的内存安全问题,同时还保持了很高的运行效率、很深的底层控制、很广的应用范围, 在系统编程领域具有强劲的竞争力和广阔的应用前景。

1. Rust 环境安装

Rust 安装起来非常方便,你可以用 rustup.rs中给出的方法,根据你的操作系统进行安装。比如在 UNIX 系统下,可以直接运行:

arduino 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

这会在你的系统上安装 Rust 工具链,之后,你就可以在本地用 cargo new 新建 Rust 项目、尝试 Rust 功能。

cargo 是 rust 官方推荐使用的项目管理软件。功能大概类似于 java 里面的 maven 和 ant。负责管理依赖项和编译。 安装 rust 时,默认安装(可以自定义为不安装)。它也类似 Node.js 的 npm、Golang 的 go,用来做依赖管理以及开发过程中的任务管理,比如编译、运行、测试、代码格式化等等。

css 复制代码
rustc --version
cargo --version

如果是 windows ,假如出现 "'rustc'不是内部或外部命令,也不是可运行的程序或批处理文件" 请在"环境变量"的 Path 中增加 rust 的 bin 目录。

2. 开发工具

你可以使用任何编辑器来撰写 Rust 代码,我个人比较喜欢 VS Code,功能强大且速度很快。在 VS Code 下我为 Rust 安装了一些插件,下面是我的安装顺序,你可以参考:

rust-analyzer:它会实时编译和分析你的 Rust 代码,提示代码中的错误,并对类型进行标注。你也可以使用官方的 Rust 插件取代。 rust syntax:为代码提供语法高亮。 crates:帮助你分析当前项目的依赖是否是最新的版本。 Crates 提供了一系列强大的功能来简化您的 Rust 开发工作流程:版本信息 :Crates 提供全面的版本信息,让您随时了解项目中的 crate。其中包括包含详细版本详细信息的工具提示和内嵌视觉反馈,以供快速参考和决策。快捷命令 :只需一个命令即可更新所有依赖项,以实现无缝工作流程。Crev 集成:通过与 Crev集成来访问有价值的代码审查和社区协作。获取反馈并就您所依赖的板条箱做出明智的决定。Doc.rs 集成:通过 Doc.rs的无缝集成,探索 Rust 的全面文档,包括包、库等。获得深入的知识和见解以增强您的编码体验。

even better toml:Rust 使用 toml 做项目的配置管理。better toml 可以帮你语法高亮,并展示 toml 文件中的错误。 rust test lens:可以帮你快速运行某个 Rust 测试。 Tabnine:基于 AI 的自动补全,可以帮助你更快地撰写代码。

3. 生成一个新的 Rust 项目

开发工具准备好之后,我们用 cargo new my-rust 生成一个新项目。默认情况下,这条命令会生成一个可执行项目 my-rust,入口在 src/main.rs。Cargo.toml 是 Rust 项目的配置管理文件,它符合 toml 的语法。

最后运行一下我们的 rust 项目。

arduino 复制代码
cargo run

这样一来我们的 rust 开发环境就搭建好了。

4. 写第一个 Rust 程序

4.1 一个小爬虫

通过 rust 抓取掘金首页。

rust 复制代码
use std::fs;

fn main() {
    let url = "https://juejin.cn/";
    let output = "rust.md";

    println!("Fetching url: {}", url);
    let body = reqwest::blocking::get(url).unwrap().text().unwrap();

    println!("Converting html to markdown...");
    let md = html2md::parse_html(&body);

    fs::write(output, md.as_bytes()).unwrap();
    println!("Converted markdown hash been saved in {}", output);
}

Bingo!我们第一个 Rust 程序运行成功!

相关推荐
Novlan115 分钟前
我把 Claude Code 里的隐藏彩蛋提取出来了——零依赖的 ASCII 虚拟宠物系统
前端
IAUTOMOBILE42 分钟前
Python 流程控制与函数定义:从调试现场到工程实践
java·前端·python
好大哥呀1 小时前
C++ Web 编程
开发语言·前端·c++
爱学习的小仙女!2 小时前
面试题 前端(一)DOCTYPE作用 标准模式与混杂模式区分
前端·前端面试题
小小小小宇3 小时前
前端转后端基础- 变量和类型
前端
Cobyte3 小时前
1.基于依赖追踪和触发的响应式系统的本质
前端·javascript·vue.js
主宰者3 小时前
C# CommunityToolkit.Mvvm全局事件
java·前端·c#
前端小咸鱼一条4 小时前
16.迭代器 和 生成器
开发语言·前端·javascript
小江的记录本4 小时前
【注解】常见 Java 注解系统性知识体系总结(附《全方位对比表》+ 思维导图)
java·前端·spring boot·后端·spring·mybatis·web