Rust 生态系统

源项目的成败往往取决于它周围社区的实力。拥有一个连贯的生态系统有助于建立一个强大的社区。由于 Rust 主要由 Mozilla 驱动, 它们能够在其周围建立一个强大的生态系统, 主要组件是:

  • 源代码: Rust 承载 GitHub 中的所有源代码。鼓励开发人员报告错误并在那里提交拉请求。在编写本文时, GitHub 上的 Rust 存储库有 1, 868 个独特的贡献者、2, 700多份开放 bug 报告和90个打开的请求。核心 Rust 团队由 Mozilla 员工和其他组织 (如 Google、百度等) 的贡献者组成。该团队使用 GitHub 进行所有协作;即使是对任何组件的重大更改, 也必须首先通过编写征求 意见请求 Request For Comments(RFC) 来提出。这样, 每个人都有机会去看看, 合作改进它。一旦获得批准, 实际的变化就可以实现。
  • 编译器: Rust 编译器被命名为 rustc。由于 Rust 遵循编译器版本的语义版本控制, 因此在次要版本之间不可能有任何向后不兼容的中断更改。在编写本书时, 编译器已经达到1.0 版, 因此可以假定在2.0 版之前不会有任何重大更改。请注意, 重大更改确实会偶尔滑倒一次。但在所有这些情况下, 它们都会被当作 Bug 对待, 并尽快修复。

为了在不破坏现有依赖库的情况下添加新的编译器功能, Rust 分阶段发布新的编译器版本。在任何时候, 都会保留三个不同版本的编译器 (和标准库)。

  • 第一个叫 nightly。顾名思义, 它每晚都会从源树的顶端构建。由于这只经过单元测试和集成测试, 因此此版本在现实世界中往往有更多的 bug。
  • 第二阶段是 beta , 这是一个计划中的版本。到每晚达到此阶段时, 它已经经历了多轮单元、集成和回归测试。此外, 社区还有时间在实际项目中使用它, 并与 Rust 团队分享反馈。
  • 一旦每个人都对发布充满信心, 就会将其标记为 stable 的发布, 并推出。由于编译器支持各种平台 (从 Windows 到氧化还原) 和体系结构 (amd64), 因此每个版本都为所有平台和体系结构的组合提供了预构建的二进制二进制文件。
  • 安装机制: 社区支持的安装机制是通过一个名为 rustup 的工具进行的。此工具可以安装给定版本的 Rust 以及使用它所需的所有内容 (包括编译器、标准库、包管理器等)。
  • 包管理器: Rust 的包管理器称为 Cargo, 而单个包裹称为 crate 。所有外部库和应用程序都可以打包在 crate 中, 并使用 Cargo CLI 工具发布。然后, 用户可以使用它来搜索和安装包。所有 crates 均可使用以下网站进行搜索: https://crates.io/ 。对于在 crates.io 上托管的所有包, 相应的文档可在: https://docs.rs/ 获得。