aur

Crates.ioaur
lib.rsaur
version0.2.0
sourcesrc
created_at2018-08-26 04:53:31.91936
updated_at2018-11-25 16:56:42.376625
descriptionHTTP client implementations for the AUR.
homepagehttps://github.com/zeyla/aur.rs
repositoryhttps://github.com/zeyla/aur.rs.git
max_upload_size
id81463
size37,434
Zeyla Hellyer (zeyla)

documentation

https://docs.rs/aur

README

ci-badge license-badge docs-badge rust badge

aur

aur is a package for interacting with the [Arch User Repository] RPC API.

It supports client trait implementations for both asynchronous hyper and synchronous reqwest.

Installation

This library requires at least Rust 1.26.0.

Add the following to your Cargo.toml:

[dependencies]
aur = "~0.1"

And the following to your main.rs or lib.rs:

extern crate aur;

There are two features: hyper-support and reqwest-support. hyper-support is enabled by default. To enable reqwest-support, instead depend on aur like so:

[dependencies.aur]
default-features = false
features = ["reqwest-support"]
version = "~0.1"

Examples

Asynchronously request information for the rust-nightly package:

extern crate aur;
extern crate hyper;
extern crate hyper_rustls;
extern crate tokio_core;

use aur::bridge::hyper::AurRequester;
use hyper::Client;
use hyper_rustls::HttpsConnector;

let connector = HttpsConnector::new(4);
let client = Client::builder().build(connector);

let done = client.aur_search(Some("rust-nightly"), None).map(|search| {
    assert!(search.result_count >= 2);
}).map_err(|why| {
    println!("Error getting rust-nightly info: {:?}", why);
});

tokio::run(done);

Synchronously request information for the rust-nightly package:

extern crate aur;
extern crate reqwest;

use aur::bridge::reqwest::AurRequester;
use reqwest::Client;

let client = Client::new();

let info = client.aur_info(&["rust-nightly"])?;

match info.first() {
    Some(package) => {
        if let Some(ref maintainer) = package.maintainer {
            println!("The package is maintained by: {}", maintainer);
        } else {
            println!("The package has no maintainer");
        }
    },
    None => {
        println!("No package found!");
    },
}

License

ISC.

Commit count: 0

cargo fmt