#api #hyper #hyper-client #time #bridge #match #error

osu

Unofficial Rust wrapper for the osu! API

3 unstable releases

Uses old Rust 2015

0.2.0 Jan 21, 2018
0.1.1 Nov 22, 2016
0.1.0 Nov 22, 2016

#467 in Games

ISC license

57KB
957 lines

ci-badge license-badge docs-badge

osu.rs

Unofficial Rust crate for the osu! API.

Documentation

Installation

Add the following dependency to your Cargo.toml:

osu = "0.2"

And include it in your project:

extern crate osu;

Examples

Using hyper with the hyper-tls HTTPS connector, retrieve the start time of a match by ID:

extern crate futures;
extern crate hyper;
extern crate hyper_tls;
extern crate osu;
extern crate tokio_core;

use futures::Future;
use hyper::client::{Client, HttpConnector};
use hyper_tls::HttpsConnector;
use osu::bridge::hyper::OsuHyperRequester;
use std::error::Error;
use std::env;
use tokio_core::reactor::Core;

fn try_main() -> Result<(), Box<Error>> {
    let mut core = Core::new()?;
    let client = Client::configure()
        .connector(HttpsConnector::new(4, &core.handle())?)
        .build(&core.handle());
    let key = env::var("OSU_KEY")?;

    let done = client.get_match(&key, 71641).map(|match| {
        println!("Match start time: {}", match.start_time);

        ()
    }).map_err(|_| ());

    core.run(done).expect("Error running core");

    Ok(())
}

fn main() {
    try_main().unwrap();
}

Using reqwest, retrieve a match's start time by ID:

extern crate osu;
extern crate reqwest;

use osu::bridge::reqwest::OsuReqwestRequester;
use reqwest::Client;
use std::error::Error;

fn try_main() -> Result<(), Box<Error>> {
    let key = env::var("OSU_KEY")?;
    let client = Client::new();
    let match = client.get_match(&key, 71641)?;

    println!("Match start time: {}", match.start_time);

    Ok(())
}

fn main() {
    try_main().unwrap();
}

License

License info in LICENSE.md. Long story short, ISC.

Dependencies

~0.7–13MB
~148K SLoC