Crate crates_io_api[−][src]
Expand description
API client for crates.io.
It aims to provide an easy to use and complete client for retrieving information about Rust’s crate ecosystem.
Both a AsyncClient and a SyncClient are available, providing either a Futures based or a blocking interface.
Please read the official crates.io Crawler Policy before using this crate.
Due to this policy, you must specify both a user agent and a desired rate limit delay when constructing a client. See SyncClient::new and AsyncClient::new for more information.
Examples
Print the most downloaded crates and their non-optional dependencies:
use crates_io_api::{SyncClient, Error}; fn list_top_dependencies() -> Result<(), Error> { // Instantiate the client. let client = SyncClient::new( "my-user-agent (my-contact@domain.com)", std::time::Duration::from_millis(1000), )?; // Retrieve summary data. let summary = client.summary()?; for c in summary.most_downloaded { println!("{}:", c.id); for dep in client.crate_dependencies(&c.id, &c.max_version)? { // Ignore optional dependencies. if !dep.optional { println!(" * {} - {}", dep.id, dep.version_id); } } } Ok(()) }
Structs
Asynchronous client for the crates.io API.
Options for the crates method of the client.
Pagination information.
A synchronous client for the crates.io API.