一文讲解时下比较火的Rust语言之-rust开发环境搭建

大家好,我是鱼樱!!!

关注公众号【鱼樱AI实验室】持续分享更多前端和AI辅助前端编码新知识~~

不定时写点笔记写点生活~写点前端经验。

在当前环境下,纯前端开发者可以通过技术深化、横向扩展、切入新兴领域以及产品化思维找到突破口。

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

前端最卷的开发语言一点不为过,三天一小更,五天一大更。。。一年一个框架升级~=嗯,要的就是这样感觉!与时俱进~

rust是什么

Rust 是由 Mozilla 主导开发的高性能编译型编程语言,遵循"安全、并发、实用"的设计原则。

Rust 语言由 Mozilla 开发,首次发布于 2010 年。

Rust 支持多种编程范式,包括函数式、并发式、过程式和面向对象风格。

Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

Rust 语言的特点

  • 内存安全:Rust 的所有权系统在编译时防止空悬指针、数据竞争等内存错误,无需垃圾收集器。
  • 并发编程:Rust 提供了现代的语言特性来支持并发编程,如线程和消息传递,使得编写并发程序更加安全和容易。
  • 性能:Rust 编译为机器码,没有运行时或垃圾收集器,能够提供接近 C 和 C++ 的性能。
  • 类型系统:Rust 的类型系统和模式匹配提供了强大的抽象能力,有助于编写更安全、更可预测的代码。
  • 错误处理:Rust 的错误处理模型鼓励显式处理所有可能的错误情况。
  • 宏系统:Rust 提供了一个强大的宏系统,允许开发者在编译时编写和重用代码。
  • 包管理:Rust 的包管理器 Cargo 简化了依赖管理和构建过程。
  • 跨平台:Rust 支持多种操作系统和平台,包括 Windows、macOS、Linux、BSDs 等。
  • 社区支持:Rust 有一个活跃的社区,提供了大量的库和工具。
  • 工具链:Rust 拥有丰富的工具链,包括编译器、包管理器、文档生成器等。
  • 无段错误:Rust 的所有权和生命周期规则保证了引用的有效性,从而避免了段错误。
  • 迭代器和闭包:Rust 提供了强大的迭代器和闭包支持,简化了集合的处理。

Rust可以做什么

  • 系统编程:操作系统、设备驱动程序、嵌入式系统等。
  • 网络编程:网络服务器、Web 服务、分布式系统等。
  • 游戏开发:游戏引擎、游戏工具、游戏客户端和服务器。
  • WebAssembly:在 Web 浏览器中运行的高性能 Web 应用。
  • 工具开发:命令行工具、自动化脚本、系统管理工具。
  • 区块链技术:智能合约、加密货币、去中心化应用(DApps)。
  • 科学计算:数值分析、数据科学、机器学习。
  • 音视频处理:媒体服务器、流处理、编解码器。
  • 云计算:云服务后端、容器技术、微服务架构。
  • 嵌入式设备:IoT 设备、智能家居设备、可穿戴设备。

安装

官网下载 rustup-init.exe (window为例 其他的参考官网即可)

由于 rust 安装过程中会使用网络下载文件,默认从国外下载,也可 配置 rust 安装镜像源 (我是中文网下载的直接安装了)。

需要配置环境变量 RUSTUP_DIST_SERVER(默认指向 static.rust-lang.org)和 RUSTUP_UPDATE_ROOT (默认指向static.rust-lang.org/rustup),让其指向国内源。

sh 复制代码
# 清华大学
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup

# 中国科学技术大学
RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

# 上海交通大学
RUSTUP_DIST_SERVER=https://mirrors.sjtug.sjtu.edu.cn/rust-static/

下载好双击执行,会出现如下界面 选 1 (其他2个看个人情况【2:手动安装先决条件】【3:不要安装必备软件】 一般1就好了) 然后会安装 Visual Studio ,确认安装进入如下界面,并点击继续:

出现如下 回车即可

安装好如下

查看安装版本

sh 复制代码
rustc --version

#OR 

rustc -V

编译 rust文件 .rs结尾 文件

sh 复制代码
rustc test.rs   # 编译 test.rs 文件

Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统,往往已经具备了 GCC 或 clang。如果你使用的是 macOS,需要安装 Xcode。如果你是用的是 Windows 操作系统,你需要安装 Visual Studio 2013 或以上的环境(需要 C/C++ 支持)以使用 MSVC 或安装 MinGW + GCC 编译环境(Cygwin 还没有测试)

更新命令

sh 复制代码
rustup update

IDE 选择

这里我选 vscode 即可,同时安装 安装 rust-analyzerNative Debug 两个扩展

配置 cargo 的国内镜像源

rust 安装完成后,我们的用户目录下会出现 .cargo 文件夹

在 .cargo 文件夹下新建 config.toml 文件( config 被弃用取代的是 config.toml ),加入如下配置:

sh 复制代码
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = 'tuna'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"

这样安装配置完成

关于Cargo

在 Rust 开发中,几乎所有的项目都是使用 Cargo 来进行管理和构建的,因为它提供了便捷的工作流程和强大的功能,使得 Rust 开发变得更加高效和可靠。

Cargo 是什么

Cargo 是 Rust 的官方构建系统和包管理器。它主要有两个作用:

主要有两个作用:

  • 项目管理:Cargo 用于创建、构建和管理 Rust 项目。通过 Cargo,你可以轻松地创建新项目,管理项目的依赖关系,并执行项目的构建、运行和测试等操作。
  • 包管理器:Cargo 还充当了 Rust 的包管理器。它允许开发者在项目中引入和管理依赖项(如第三方库),并确保这些依赖项的版本管理和兼容性。

Cargo 主要特性和功能:

  • 依赖管理 :Cargo 通过 Cargo.toml 文件管理项目的依赖,这个文件列出了项目所需的所有外部库以及它们的版本。
  • 构建系统:Cargo 使用 Rust 编译器(rustc)来构建项目,它会自动处理依赖的编译和链接。
  • 包注册表 :Cargo 与 crates.io 这个 Rust 社区的包注册表交互,允许开发者搜索、添加和管理第三方库。
  • 构建配置 :通过 Cargo.tomlCargo.lock 文件,Cargo 允许开发者配置构建选项,如编译器选项、特性(features)和目标平台。
  • 项目模板 :Cargo 提供了创建新项目的模板,可以通过 cargo new 命令快速启动新项目。
  • 测试 :Cargo 提供了一个简单的命令 cargo test 来运行项目的单元测试。
  • 基准测试 :Cargo 支持使用 cargo bench 命令进行基准测试。
  • 发布 :通过 cargo publish 命令,开发者可以将他们的库发布到 crates.io 上,供其他开发者使用。
  • 自定义构建脚本:Cargo 允许使用自定义的构建脚本来处理更复杂的构建需求。
  • 多目标项目:Cargo 支持在一个项目中定义多个目标,如可执行文件、库、测试和基准测试。
  • 跨平台构建:Cargo 支持跨多个平台构建 Rust 程序,包括 Windows、macOS、Linux 以及各种嵌入式系统。
  • 构建缓存:为了加快构建速度,Cargo 使用构建缓存来存储编译后的依赖。
  • 离线工作:Cargo 支持在没有互联网连接的情况下工作,它会自动使用本地缓存的依赖。
  • 插件系统:Cargo 允许开发者编写插件来扩展其功能。
  • 环境变量:Cargo 支持通过环境变量来覆盖默认的构建和运行行为。

Cargo 功能

Cargo 除了创建工程以外还具备构建(build)工程、运行(run)工程等一系列功能,构建和运行分别对应以下命令:

  • cargo new <project-name>:创建一个新的 Rust 项目。
  • cargo build:编译当前项目。
  • cargo run:编译并运行当前项目。
  • cargo check:检查当前项目的语法和类型错误。
  • cargo test:运行当前项目的单元测试。
  • cargo update:更新 Cargo.toml 中指定的依赖项到最新版本。
  • cargo --help:查看 Cargo 的帮助信息。
  • cargo publish:将 Rust 项目发布到 crates.io
  • cargo clean:清理构建过程中生成的临时文件和目录。

第一个rust程序

hello world 程序

碰到问题

cargo build 时碰到 Blocking waiting for file lock on package cache

原因是Cargo 无法获取对包缓存的文件锁,

有时vscode中项目比较多,如果其中某些库应用有问题,rust-analylzer转圈圈的时候容易碰到这个情况。

如果确定没有其他程序占用,执行以下命令(或者暂停rust-analyzer,或者把有问题的项目移出vscode) rm -rf ~/.cargo/.package-cache 执行之后就可以cargo build了。

相关推荐
passerby60618 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了8 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅8 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅8 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅9 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment9 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅9 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊9 小时前
jwt介绍
前端
爱敲代码的小鱼9 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax
Cobyte10 小时前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc