Skip to main content

Crate rs_histver

Crate rs_histver 

Source
Expand description

§rs-histver

A library for querying Rust historical release versions.

Pure network fetch — no database, no file system, no side effects. The CLI binary (rs-histver) additionally provides terminal formatting.

§As a library

use rs_histver::{fetch_releases, FetchOptions};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let releases = fetch_releases("stable", FetchOptions::default()).await?;
    for r in &releases {
        println!("{} ({})", r.version, r.date);
    }
    Ok(())
}

Structs§

FetchOptions
Options for fetching Rust release data.
NetworkConfig
Network configuration for HTTP fetcher requests.
RustRelease
Rust release information.

Constants§

ALL_CHANNELS
All three valid channel names, ordered for iteration.
CHANNEL_BETA
Beta release channel identifier.
CHANNEL_NIGHTLY
Nightly release channel identifier.
CHANNEL_STABLE
Stable release channel identifier.
DEFAULT_MAX_CONCURRENCY
Default maximum number of concurrent HTTP requests.
DEFAULT_PROBE_DAYS
Default number of days to probe for beta/nightly history.
DEFAULT_TIMEOUT_SECS
Default HTTP request timeout (seconds). Increased from 15s to 60s for better compatibility with slow network connections (e.g., accessing GitHub from regions like China mainland).
GITHUB_MAX_PAGES
Maximum number of pages to fetch from GitHub Releases API (1500 releases — ~10 years of Rust history).
GITHUB_PER_PAGE
Results per page for the GitHub Releases API.
GITHUB_RELEASES_API
GitHub Releases API endpoint for the Rust language repository.
PKG_NAME
Package / binary name, used for CLI identity and User-Agent prefix.
RELEASES_MD_URL
Raw RELEASES.md for full historical stable release data.
STATIC_DIST_BASE_URL
Base URL for static.rust-lang.org distribution files.

Traits§

ReleaseFetcher
Release fetcher strategy trait (Strategy Pattern).

Functions§

create_fetcher
Factory function: create the appropriate fetcher for a given channel.
default_user_agent
Generate the default User-Agent header string, e.g. "rs-histver/0.4.0".
fetch_releases
Fetch Rust release data for a given channel.