5 unstable releases
Uses old Rust 2015
0.2.0 | Jan 14, 2018 |
---|---|
0.1.1 | Jun 8, 2015 |
0.1.0 | Jun 8, 2015 |
0.0.2 | Apr 24, 2015 |
0.0.1 | Apr 24, 2015 |
#43 in #segment
31KB
774 lines
strava-rs
Strava API client in Rust
About
The library currently exposes functions for accessing athletes, segments, and segment efforts. Support for activities is next on the list. For an exhaustive list of capabilities, please reference the docs.
extern crate strava;
use strava::athletes::Athlete;
use strava::api::AccessToken;
fn main() {
// Create a token
let token = AccessToken::new("<my token>".to_string());
// Get the athlete associated with the given token
let athlete = Athlete::get_current(&token).unwrap();
// All of the strava types implement Debug and can be printed like so:
println!("{:?}", athlete);
}
Disclaimer
I am not in any way affiliated with Strava, Inc. I merely wish to use the Strava API from Rust.
lib.rs
:
A wrapper for the Strava API
Organization
The module layout in this crate mirrors the Strava API documentation. All functions
interacting with the strava servers will return a
strava::error::Result
for which the E
parameter is curried to
strava::error::ApiError
. The module listing below includes
UNIMPLEMENTED tags to make it clear what hasn't been written yet. Modules without that tag
are not guaranteed to exhaustively wrap all endpoints for that type, but they are guaranteed to
have support for between 1..all
endpoints for that type.
Examples
The simplest thing one can do with the strava API is to get an athlete and print it out. Every
request made against the Strava API requires a valid access token. Since this example provides a
fake token, the unwrap
call will panic with an ApiError::InvalidAccessToken
. You can get a
token by registering an application on strava.com.
use strava::athletes::Athlete;
use strava::api::AccessToken;
// Create a token
let token = AccessToken::new("<my token>".to_string());
// Get the athlete associated with the given token
let athlete = Athlete::get_current(&token).unwrap();
// All of the strava types implement Debug and can be printed like so:
println!("{:?}", athlete);
Dependencies
~4–12MB
~160K SLoC