一文讲解时下比较火的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了。

相关推荐
cos25 分钟前
从像素到粒子:p5.js 图像转动态粒子的设计与实现
前端·javascript·webgl
造糖主义3 小时前
vue-el-upload上传组件自定义删除-预览按钮遮罩层,不受原有的上传打开文件夹
前端·javascript·vue.js
小猫会后空翻3 小时前
XSS相关理解
前端·xss
brzhang4 小时前
我十几个项目都是这套Flutter 快速开发框架,今天开源了,从此你只用关心业务了
前端·后端·架构
qziovv4 小时前
控制Vue对话框显示隐藏
javascript·vue.js·elementui
BLACK5954 小时前
Nuxt3中PC端与移动端适配的三种方式(含Nuxt官网同款实现方式)
前端·vue.js·nuxt.js
小宁爱Python5 小时前
TypeScript 泛型详解:从基础到实战应用
前端·javascript·typescript
Moment5 小时前
Next.js 15.4 正式发布:Turbopack 全面稳定,预热 Next.js 16 😍😍😍
前端·javascript·node.js
虚!!!看代码6 小时前
uni-app 跳转页面传参
前端·vue.js·uni-app