#index #version #release #channel #stable #manifest #toolchain

manifesta

索引并访问所有可用的 Rust 版本

2 个版本

0.1.1 2021年2月10日
0.1.0 2021年2月10日

#8 in #releases

MIT/Apache

33KB
373 行代码(不含注释)

Manifesta

简介

Rust 编程语言使用确定性版本控制来发布工具链。稳定版本使用 SemVer,而夜间、beta 和历史构建可以通过使用日期构建(YY-MM-DD)来访问。

cargo-msrv 是一个工具,可以用来确定最小支持的 Rust 版本(MSRV)。在 cargo-msrv 中,我首先解析了最新的频道清单,然后减小了次要的 semver 版本。这有很多原因不好

  • 除了最新的发布版本,我们只能猜测减小的版本号实际上存在
  • 仅支持稳定版本,不支持夜间、beta 或其他频道
  • 仅支持 1.x.0 版本

由于上述限制,我决定寻找实际发布的索引。经过一番研究,我发现以下选项

  1. 使用 AWS 索引(例如 aws --no-sign-request s3 ls static-rust-lang-org/dist/ > dist.txt
    • 速率限制(仅获取索引花费了约 40 秒)
    • 来源
  2. 从单个 发布清单 构建
    • 需要解析多个文档
    • 新版本发布后约一周延迟
    • 还具有更具体的工具链信息
    • 来源
  3. 解析 Rust 仓库中的 RELEASES.md
    • 注意:仅支持稳定版本

以上每个选项都需要额外的解析,这就是这个 crate 的用武之地:这个 crate 提供了所有 Rust 发布的索引。它最终将支持这三种选项,但最初,仅支持第二种。

技术选项

  • 自带下载工具(计划中,将来将成为 cfg 选项)
  • 可选,使用内置下载工具

crate 名称

"manifest" 和 "festa" 的组合,"manifest" 指的是该 crate 从中提取 (meta) 数据的 Rust 发布清单,"festa" 是葡萄牙语中的派对。

依赖

~4–5.5MB
~129K SLoC