Rust

2025年07月15日更新 7 人订阅
原价: ¥ 6 限时优惠
专栏简介 Rust编程语言之错误处理 Rust 语言之 flod Rust编程语言之Cargo、Crates.io详解 Rust编程语言之枚举与模式匹配 Rust语言 - 接口设计的建议之受约束(Constrained) Rust编程语言之无畏并发 Rust语言 - 接口设计的建议之灵活(flexible) Rust语言 - 接口设计的建议之显而易见(Obvious) Rust语言 - 接口设计的建议之不意外(unsurprising) Rust 实战:构建实用的 CLI 工具 HTTPie Rust编程语言学习之高级特性 Rust内存管理揭秘:深度剖析指针与智能指针 解决Rust中数组和切片的编译时大小问题 《Rust编程之道》学习笔记一 Rust Async 异步编程 简易教程 使用 Async Rust 构建简单的 P2P 节点 Rust编程语言入门之模式匹配 Rust async 编程 Rust编程语言之编写自动化测试 Rust编程语言之函数式语言特性:迭代器和闭包 《Rust编程之道》学习笔记二 Rust Tips 比较数值 使用 Rust 开发一个微型游戏 Rust编程初探:深入理解Struct结构体 深入理解Rust中的内存管理:栈、堆与静态内存详解 深入理解 Rust 结构体:经典结构体、元组结构体和单元结构体的实现 深入掌握 Rust 结构体:从模板到实例化的完整指南 深入理解Rust中的结构体:逻辑与数据结合的实战示例 深入理解 Rust 枚举:从基础到实践 掌握Rust字符串的精髓:String与&str的最佳实践 全面解析 Rust 模块系统:实战案例与应用技巧 Rust 中的 HashMap 实战指南:理解与优化技巧 掌握Rust模式匹配:从基础语法到实际应用 Rust 中的面向对象编程:特性与实现指南 深入理解 Rust 的 Pin 和 Unpin:理论与实践解析 Rust Trait 与 Go Interface:从设计到实战的深度对比 从零开始:用 Rust 和 Axum 打造高效 Web 应用 Rust 错误处理详解:掌握 anyhow、thiserror 和 snafu Rust 如何优雅实现冒泡排序 链表倒数 K 节点怎么删?Python/Go/Rust 实战 用 Rust 玩转数据存储:JSON 文件持久化实战 Rust实战:打造高效字符串分割函数 如何高效学习一门技术:从知到行的飞轮效应 Rust 编程入门:Struct 让代码更优雅 Rust 编程:零基础入门高性能开发 用 Rust 写个猜数游戏,编程小白也能上手! Rust 入门教程:变量到数据类型,轻松掌握! 深入浅出 Rust:函数、控制流与所有权核心特性解析 从零开始:用 Rust 和 Axum 打造高效 Web 服务 Rust 集合类型解析:Vector、String、HashMap 深入浅出Rust:泛型、Trait与生命周期的硬核指南 Rust实战:博物馆门票限流系统设计与实现 用 Rust 打造高性能图片处理服务器:从零开始实现类似 Thumbor 的功能 Rust 编程入门实战:从零开始抓取网页并转换为 Markdown 深入浅出 Rust:高效处理二进制数据的 Bytes 与 BytesMut 实战 Rust智能指针:解锁内存管理的进阶之道 用 Rust 打造命令行利器:从零到一实现 mini-grep 解锁Rust代码组织:轻松掌握Package、Crate与Module Rust 所有权:从内存管理到生产力释放 深入解析 Rust 的面向对象编程:特性、实现与设计模式 Rust + Protobuf:从零打造高效键值存储项目 bacon 点燃 Rust:比 cargo-watch 更爽的开发体验 用 Rust 打造微型游戏:从零开始的 Flappy Dragon 开发之旅 函数式编程的Rust之旅:闭包与迭代器的深入解析与实践 探索Rust编程之道:从设计哲学到内存安全的学习笔记 精读《Rust编程之道》:吃透语言精要,彻底搞懂所有权与借用 Rust 避坑指南:搞定数值比较,别再让 0.1 + 0.2 != 0.3 困扰你! 告别 Vec!掌握 Rust bytes 库,解锁零拷贝的真正威力 告别竞态条件:基于 Axum 和 Serde 的 Rust 并发状态管理最佳实践 Rust 异步编程实践:从 Tokio 基础到阻塞任务处理模式 Rust 网络编程实战:用 Tokio 手写一个迷你 TCP 反向代理 (minginx) 保姆级教程:Zsh + Oh My Zsh 终极配置,让你的 Ubuntu 终端效率倍增 不止于后端:Rust 在 Web 开发中的崛起之路 (2024数据解读) Rust核心利器:枚举(Enum)与模式匹配(Match),告别空指针,写出优雅健壮的代码 Rust 错误处理终极指南:从 panic! 到 Result 的优雅之道 想用 Rust 开发游戏?这份超详细的入门教程请收好! 用 Rust 实现 HTTPie:一个现代 CLI 工具的构建过程 Rust 异步实战:从0到1,用 Tokio 打造一个高性能并发聊天室 深入 Rust 核心:彻底搞懂指针、引用与智能指针

Rust 编程:零基础入门高性能开发

Rust编程:零基础入门高性能开发想掌握一门兼具C++性能与现代安全性的编程语言?Rust正是你的理想选择!作为席卷系统编程和高性能开发领域的“新星”,Rust不仅被Firefox和GoogleFuschia等大厂采用,还因其零基础友好的学习路径受到开发者追捧。本文将带你从安装

Rust 编程:零基础入门高性能开发

想掌握一门兼具 C++ 性能与现代安全性的编程语言?Rust 正是你的理想选择!作为席卷系统编程和高性能开发领域的“新星”,Rust 不仅被 Firefox 和 Google Fuschia 等大厂采用,还因其零基础友好的学习路径受到开发者追捧。本文将带你从安装 Rust 到编写第一个程序,零基础也能快速上手,解锁高性能开发的无限可能!快来跟随这篇入门指南,开启你的 Rust 编程之旅吧!

本文全面介绍 Rust 编程语言的入门知识,涵盖其高性能、内存安全和并发处理的独特优势,以及与 C/C++、Java 等语言的对比。Rust 广泛应用于系统编程、WebAssembly 和高性能 Web 服务,深受 Firefox、Google Fuschia 等项目青睐。文章详细讲解了 Rust 的安装步骤、开发环境配置、第一个“Hello World”程序的编写,以及使用 Cargo 工具进行项目管理。尽管 Rust 学习曲线稍陡,但其强大的性能和安全性使其成为零基础开发者迈向高性能开发的理想起点。

Rust简介

为什么要用Rust?

  • Rust是一种令人兴奋的新编程语言,它可以让每个人编写可靠且高效的软件。
  • 它可以用来替换C/C++,Rust和他们具有同样的性能,但是很多常见的bug在编译时就可以被消灭。
  • Rust是一种通用的编程语言,但是它更善于以下场景:
    • 需要运行时的速度
    • 需要内存安全
    • 更好的利用多处理器

与其他语言比较

  • C/C++性能非常好,但类型系统和内存都不太安全。
  • Java/C#,拥有GC,能保证内存安全,也有很多优秀特性,但是性能不行。
  • Rust:
    • 安全
    • 无需GC(性能好速度快)
    • 易于维护、调试、代码安全高效

Rust特别擅长的领域

  • 高性能 Web Service (Web API)
  • WebAssembly
  • 命令行工具
  • 网络编程
  • 嵌入式设备
  • 系统编程

Rust与Firefox

  • Rust最初是Mazilla公司的一个研究性项目。Firefox是Rust产品应用的一个重要的例子。
  • Mazilla 一直以来都在用Rust创建一个名为Servo的实验性浏览器引擎,其中的所有内容都是并行执行的。
    • 目前Servo的部分功能已经被集成到Firefox里面了
  • Firefox原来的量子版就包含了Servo的CSS渲染引擎
    • Rust使得Firefox在这方面得到了巨大的性能改进

Rust的用户和案例

  • Google:新操作系统Fuschia,其中Rust代码量大约占30%
  • Amazon:基于Linux开发的直接可以在裸机、虚机上运行容器的操作系统
  • System76、百度、华为、蚂蚁金服...

Rust的优点

  • 性能
  • 安全性
  • 无所畏惧的并发

Rust的缺点

  • 学习曲线高 ”难学“

注意

  • Rust有很多独有的概念,要一步一步学习

Rust 安装

官网:<https://www.rust-lang.org/zh-CN/learn/get-started>

Windows:按官网指示操作

Mac 安装:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

更新与卸载Rust

  • 更新Rust
rustup update
  • 卸载Rust
rustup self uninstall

安装验证

  • rustc --version
    • 结构格式:rustc x.y.z(abcdbcdbc yyyy-mm-dd)
    • 会现实最新稳定版:版本号、commit hash、commit日期

本地文档

  • 安装Rust的时候,会在本地安装文档,可离线浏览
  • 运行rustup doc可在浏览器打开本地文档
➜ cargo --version
cargo 1.67.1 (8ecd4f20a 2023-01-10)

~
➜ rustc --version
rustc 1.67.1 (d5a82bbd2 2023-02-07)

~
➜ rustup doc

开发工具

  • Visual Studio Code
    • Rust 插件
  • Pycharm(Intellij Idea 系列)
    • Rust插件

Hello World 例子

编写Rust程序

  • 程序文件后缀名:rs
  • 文件命名规范:hello_world.rs
➜ mkdir rust

~
➜ cd rust

~/rust
➜ mkdir hello_world

~/rust
➜ cd hello_world

~/rust/hello_world
➜ code .

~/rust/hello_world
➜ pwd
/Users/qiaopengjun/rust/hello_world

~/rust/hello_world via 🦀 1.67.1
➜ mv hello_world.rs main.rs

~/rust/hello_world via 🦀 1.67.1
➜ rustc main.rs

~/rust/hello_world via 🦀 1.67.1
➜ ls
main    main.rs

➜ ./main
Hello World!

main.rs`文件

fn main() {
    println!("Hello World!");
}

Rust 程序解剖

  • 定义函数:fn main(){}
    • 没有参数,没有返回
  • main函数很特别:它是每个Rust可执行程序最先运行的代码
  • 打印文本:printIn!("Hello, world!");
    • Rust的缩进是4个空格而不是tab
    • printIn!是一个Rust macro(宏)
    • 如果是函数的话,就没有!
    • "Hello World" 是字符串,它是printIn!的参数
    • 这行代码以;结尾

编译和运行是单独的两步

  • 运行Rust程序之前必须先编译,命令为:rustc源文件名
    • rustc main.rs
  • 编译成功后,会生成一个二进制文件
    • 在Windows上还会生产一个.pdb文件,里面包含调试信息
  • Rust是ahead-of-time编译的语言(预先编译)
    • 可以先编译程序,然后把可执行文件交给别人运行(无需安装Rust)
  • Rustc 只适合简单的Rust程序...

Hello Cargo

Cargo

  • Cargo 是Rust的构建系统和包管理工具
    • 构建代码、下载依赖的库、构建这些苦...
  • 安装Rust的时候会安装Cargo
    • Cargo --version
~/rust/hello_world via 🦀 1.67.1
➜ cargo --version
cargo 1.67.1 (8ecd4f20a 2023-01-10)

使用Cargo创建项目

  • 创建项目:cargo new hello_cargo
    • 项目名称也是hello_cargo
    • 会创建一个新的目录hello_cargo
    • Cargo.toml
    • src目录
      • main.rs
    • 初始化了一个新的Git仓库 .gitignore
      • 可以使用其它的VCS或不使用VCS:cargo new 的时候使用 --vcs 这个flag
~/rust
➜ cargo new hello_cargo
     Created binary (application) `hello_cargo` package

~/rust

➜ ls
hello_cargo hello_world

~/rust
➜ cd hello_cargo

hello_cargo on  master [?] via 🦀 1.67.1
➜ ls
Cargo.toml src

hello_cargo on  master [?] via 🦀 1.67.1
➜ ➜ ls
Cargo.toml src

Cargo.toml

  • TOML(Tom's Obvious, Minimal Language)格式,是Cargo的配置格式
  • [package],是一个区域标题,表示下方内容是用来配置包(package)的
    • name 项目名
    • version 项目版本
    • authors 项目作者
    • edition 使用的Rust版本
  • [dependencies] 另一个区域的开始,它会列出项目的依赖项
  • 在Rust里面,代码的包称作crate

src/main.rs

  • cargo 生成的main.rs在src目录下
  • 而Cargo.toml在项目顶层下
  • 源代码都应该在src目录下
  • 顶层目录可以放置:README、许可信息、配置文件和其它与程序源码无关的文件
  • 如果创建项目时没有使用cargo,也可以把项目转化为使用cargo:
    • 把源代码文件移动到src下
    • 创建Cargo.toml并填写相应的配置

构建Cargo项目 cargo build

  • cargo build
    • 创建可执行文件:target/debug/hello_cargo或target\debug\hello_cargo.exe(Windows)
    • 运行可执行文件:./target/debug/hello_cargo.\target\debug\hello_cargo.exe(Windows)
  • 第一次运行cargo build会在顶层目录生成cargo.lock文件
    • 该文件负责追踪项目依赖的精确版本
    • 不需要手动修改该文件

构建和运行cargo项目 cargo run

  • cargo run 编译代码 + 执行结果
    • 如果之前编译成功过,并且源码没有改变,那么就会直接运行二进制文件
hello_cargo on  master [?] is 📦 0.1.0 via 🦀 1.67.1
➜ cargo run
   Compiling hello_cargo v0.1.0 (/Users/qiaopengjun/rust/hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.38s
     Running `target/debug/hello_cargo`
Hello, world!

hello_cargo on  master [?] is 📦 0.1.0 via 🦀 1.67.1
➜

cargo check

  • cargo check 检查代码,确保能通过编译,但是不产生任何可执行文件
  • cargo chekc 要比 cargo build 快得多
    • 编写代码的时候可以连续反复的使用cargo chekc 检查代码,提高效率

为发布构建

  • cargo build --release
    • 编译时会进行优化
    • 代码会运行的更快,但是编译时间更长
    • 会在target/release而不是target/debug生成可执行文件
  • 两种配置
    • 开发
    • 正式发布

尽量用Cargo

总结

Rust 编程语言以其卓越的性能、内存安全性和现代并发能力,正在成为高性能开发领域的首选。从 Firefox 的 CSS 渲染引擎到 Google Fuschia 操作系统,Rust 的实际应用证明了其强大潜力。本文通过安装配置、Hello World 程序和 Cargo 工具的介绍,助你零基础迈出 Rust 学习第一步。尽管 Rust 的独特概念需要时间掌握,但其简洁的语法和强大的生态系统让每位开发者都能轻松上手。立即安装 Rust,编写你的第一个高性能程序,探索编程的未来!

参考

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论