Expand description

Library for retrieving and interacting with the crates.io index.

Examples

Getting information about a single crate

let index = crates_index::Index::new_cargo_default()?;
let serde_crate = index.crate_("serde").expect("you should handle errors here");
println!("Serde is at v{}", serde_crate.highest_stable_version().unwrap().version());

Iterating over all crates in the index

let index = crates_index::Index::new_cargo_default()?;
for crate_ in index.crates() {
   let latest_version = crate_.latest_version();
   println!("crate name: {}", latest_version.name());
   println!("most recently released version: {}", latest_version.version());
}

// or faster:
use rayon::prelude::*;
index.crates_parallel().for_each(|crate_| {
    /* etc. */
});

Structs

A whole crate with all its versions

Iterator over all crates in the index. Skips crates that failed to parse.

A single dependency of a specific crate version

Wrapper around managing the crates.io-index git repository

Global configuration of an index, reflecting the contents of config.json.

A single version of a crate (package) published to the index

Enums

Section in which this dependency was defined

Oops