Rust Library for the Riot Games API.
Rivens's goals are speed, reliability, and maintainability. Riven handles rate limits and large requests with ease. Data structs and endpoints are automatically generated from the Riot API Reference (Swagger).
```rust use riven::RiotApi; use riven::consts::Region;
// Enter tokio async runtime. let mut rt = tokio::runtime::Runtime::new().unwrap(); rt.blockon(async { // Create RiotApi instance from key string. let apikey = "RGAPI-01234567-89ab-cdef-0123-456789abcdef"; # /* (doc testing) */ let apikey = std::env!("RGAPIKEY"); let riotapi = RiotApi::withkey(api_key);
// Get summoner data.
let summoner = riot_api.summoner_v4()
.get_by_summoner_name(Region::NA, "잘못").await
.expect("Get summoner failed.")
.expect("There is no summoner with that name.");
// Print summoner name.
println!("{} Champion Masteries:", summoner.name);
// Get champion mastery data.
let masteries = riot_api.champion_mastery_v4()
.get_all_champion_masteries(Region::NA, &summoner.id).await
.expect("Get champion masteries failed.");
// Print champioon masteries.
for (i, mastery) in masteries[..10].iter().enumerate() {
println!("{: >2}) {: <9} {: >7} ({})", i + 1,
mastery.champion_id.to_string(),
mastery.champion_points, mastery.champion_level);
}
});
Output:
text
잘 못 Champion Masteries:
1) Riven 1219895 (7)
2) Fiora 229714 (5)
3) Katarina 175985 (5)
4) Lee Sin 150546 (7)
5) Jax 100509 (5)
6) Gnar 76373 (6)
7) Kai'Sa 64271 (5)
8) Caitlyn 46479 (5)
9) Irelia 46465 (5)
10) Vladimir 37176 (5)
```
Enable the nightly
feature to use nightly-only functionality. Mainly enables
nightly optimizations in the parking_lot
crate.
Also required for running async integration tests.
Riven returns Result<Option<T>>
within futures. If the Result
is errored,
this indicates that the API request failed to complete successfully, which may be
due to bad user input, Riot server errors, incorrect API key, etc. If the Option
is None
, this indicates that the request completed successfully but no data was
returned. This happens if a summoner (by name) or match (by id) doesn't exist.
Feel free to make an issue if you are have any questions or trouble using Riven.