Rust 语言的基本构成

Rust 主要是由如下核心部件构成后端

  • 语言规范
  • 编译器
  • 核心库
  • 标准库
  • 包管理器

语言规范

Rust 语言规范主要是由 Rust 语言参考(The Rust Reference)和 RFC 文档组成。markdown

Rust 语言参考

Rust 语言参考有官方团队维护,包含三类内容网络

  • 对每种语言结构及其用法的描述。
  • 对内存模型、并发模型、连接、调试等内存的描述。
  • 影响语言设计的基本原理和参考。

此文档非正式规范性文档,可做为参考使用并发

RFC 文档

Rust 引入规范化的 RFC 流程,RFC 文档是涵盖了语言特性的设计意图、详细设计、优缺点的完整技术方案。 总结来说: RFC 至关于草案。函数

编译器

Rust 官方编译器为 rustc。负责将 Rust 源码便觉得可执行文件或者其余类库文件(.a、.so、.lib、.dll等)。工具

Rustc 有如下特色单元测试

  • rustc 是跨平台的应用程序,支持 UNIX/Linux 等类 UNIX 平台,也支持 Windows 平台
  • rustc 支持交叉编译,能够在当前平台下编译出可运行与其余平台上的应用程序和库。
  • rustc 使用 LLVM 做为编译器后端,具备很好的代码生成和优化技术,支持多个目标平台。
  • rustc 是用 Rust 语言开发的,包含在 Rust 语言源码中。
  • rustc 对 Rust 源码进行词法语法分析、静态类型检查,最终将代码翻译为 LLVM IR。
  • rustc 输出的错误信息很是友好和详满是开发者的良师益友

核心库

Rust 语法由核心库和标准库共同提供,其中 Rust 核心库是标准库的基础,核心库中定义了 Rust 语言的核心,不依赖与操做系统和网络等相关的库,甚至不知道堆分配也不提供并发和 I/O。 经过在模块顶部引入 #![no std] 来使用核心库,核心库和标准库功能有一些重复,包含以下部分:学习

  • 基础的 trait ,如 CopyDebugDisplayOption 等。
  • 基本原始类型,如:boolchari8/u8i16/u16i32/u32i64/u64isize/usizef32/f64strarrayslicetuplepointer 等。
  • 经常使用功能性数据类型,知足常见的功能性需求,如 StringVecHashMapRcArcBox 等。
  • 经常使用的宏定义,如:println!assert!panic!vec!等。

在作嵌入式开发时,核心库是必须的。测试

标准库

Rust 标准库提供应用程序开发所须要的基础平台和跨平台支持。标准库包含的内容大概以下:优化

  • 与核心库同样的基本 trait、原始数据类型、功能数据类型和经常使用宏等,以及与核心库几乎彻底一致的 API。
  • 并发、I/O 和运行时。例如线程模块、用于消息传递的通道类型, Synctrait 等并发模块,文件、TCP、UDP、管道、套接字等常见 I/O
  • 平台抽象。os 模块提供了许多操做环境交互的功能,包括程序参数、环境变量和目录导航;路径模块封装了处理文件路径的平台特定规则。
  • 底层操做接口,如:std::memstd::ptrstd:::intrinsics 等,操做系统内存、指针、调用编译器固有函数。
  • 可选和错误处理类型 Option 和 Result,以及各类迭代器等。

包管理器

把必定规则组织的多个 rs 文件编译后就获得了一个包(creat)。包是 Rust 代码的基本编译单元,也就是共享代码的基本单元。

Rust 社区公开的第三方包都集中在 creates.io 网站上面,它们的文档会被自动发布到 docs.rs 网站上。

Rust 的包管理工具是 Cargo。 Cargo 不只局限于包管理,它还为 Rust 生态系统提供了标准的工做流。 Cargo 可以管理整个工做流程,从建立项目、运行单元测试和肌醇测试,到构建发布连接库,再到运行可执行文件,等等。Cargo 为开发者提供了极大的方便。

#Rust学习

相关文章
相关标签/搜索