跳到主要内容

Rust 简介

Rust 是一门通用系统编程语言,目标是让你编写可靠、高效、可维护的软件。它最常被拿来和 C/C++ 比较,因为 Rust 同样可以编译成本地机器码,也适合系统编程、网络服务、嵌入式、命令行工具和性能敏感场景。

Rust 的特别之处在于:它不依赖垃圾回收器,却能在编译期发现大量内存安全问题。

为什么学习 Rust

你学习 Rust,通常是因为想解决这些问题:

  • 想要接近 C/C++ 的性能。
  • 想减少 use-after-free、悬垂指针、空指针、数据竞争等底层错误。
  • 想写长期维护的大型工程。
  • 想用一套现代工具链管理构建、依赖、测试和文档。
  • 想进入系统编程、网络编程、嵌入式、WebAssembly 等方向。

Rust 不会让复杂问题消失,但它会把很多错误提前到编译期暴露出来。

Rust 适合哪些场景

Rust 常见应用方向包括:

  • 系统编程:文件系统、命令行工具、运行时、操作系统组件。
  • 网络编程:高性能服务、代理、协议实现、异步网络应用。
  • 嵌入式开发:裸机 firmware、驱动、IoT 设备逻辑。
  • WebAssembly:把 Rust 编译到浏览器或边缘运行环境。
  • 基础设施:数据库、搜索引擎、消息队列、容器和云原生组件。

对 GetIoT 读者来说,Rust 在 Linux、嵌入式、网络协议和安全可靠工具开发中都值得关注。

Rust 和 C/C++ 的关系

Rust 和 C/C++ 有相似目标:高性能、接近底层、可控制资源。但 Rust 的默认安全边界更强。

方向C/C++Rust
性能很高很高
内存管理手动管理为主ownership + RAII
空值指针可能为空使用 Option<T> 表达
错误处理返回码、异常等Result<T, E> 很常见
并发安全依赖规范和工具类型系统帮助防止数据竞争
学习成本底层细节复杂ownership 初期较难

Rust 不是“更简单的 C++”。它更像是重新设计了一套系统编程语言,让编译器参与更多安全检查。

Rust 的学习难点

Rust 初学者最容易卡在:

  • ownership:值到底归谁所有。
  • borrowing:什么时候可以借用,什么时候不能。
  • lifetime:引用必须活得足够久。
  • trait:如何表达“某类能力”。
  • error handling:如何用 Result 处理失败。

这些概念一开始会显得严格,但它们是 Rust 安全模型的核心。

小结

你可以这样理解 Rust:它希望你用接近底层的方式写高性能程序,同时让编译器在运行前帮你检查资源和内存使用是否安全。接下来我们先看 Rust 程序的工作原理,再安装工具链并运行第一个程序。