manifesta

Crates.iomanifesta
lib.rsmanifesta
version0.1.1
sourcesrc
created_at2021-02-10 17:38:57.397629
updated_at2021-02-10 18:11:17.488438
descriptionIndex and access all available Rust releases
homepage
repositoryhttps://github.com/foresterre/manifesta
max_upload_size
id353324
size289,568
Martijn Gribnau (foresterre)

documentation

https://docs.rs/manifesta

README

Manifesta

Introduction

The Rust programming language uses deterministic versioning for toolchain releases. Stable versions use SemVer, while nightly, beta and historical builds can be accessed by using dated builds (YY-MM-DD).

cargo-msrv is a tool which can be used to determine the minimal supported Rust version (MSRV). In cargo-msrv I started by parsing the latest channel manifest, and then decreasing the minor semver version. This is not great for many reasons:

  • Except for the latest released version, we are left guessing the decreased version numbers actually exist
  • Only stable versions are supported, not nightly, beta, or other channels
  • Only 1.x.0 versions are supported

As a result of the above limitations, I decided to look for an actual index of releases. After doing some research I found the following options:

  1. Use the AWS index (e.g. aws --no-sign-request s3 ls static-rust-lang-org/dist/ > dist.txt)
    • Rate-limited (only obtaining the index took ~40 seconds)
    • source
  2. Build from individual release manifests
    • Requires parsing multiple documents
    • Approx. one week delay after a new release
    • Also has more specific toolchain information
    • source
  3. Parse Rust in-repo RELEASES.md
    • Note: stable only

Each of these options requires additional parsing, which is where this crate comes in: this crate provides an index of all Rust releases. It will eventually support all three options, but initially, only the second one will be supported.

Technical options

  • Bring your own download tool (planned, will be a cfg option in the future)
  • Optionally, use built in download tool

Crate name

Portmanteau of "manifest", referring to the Rust release manifests this crate pulls its (meta)data from and "festa", Portuguese for party.

Commit count: 315

cargo fmt