aur 0.2.0

HTTP client implementations for the AUR.
Documentation
[![ci-badge][]][ci] [![license-badge][]][license] [![docs-badge][]][docs] [![rust badge]][rust link]

# 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`:

```toml
[dependencies]
aur = "~0.1"
```

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

```rust
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:

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

### Examples

Asynchronously request information for the `rust-nightly` package:

```rust
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:

```rust
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][LICENSE.md].

[ci]: https://travis-ci.org/zeyla/aur.rs
[ci-badge]: https://img.shields.io/travis/zeyla/aur.rs.svg?style=flat-square
[docs]: https://docs.rs/crate/aur
[docs-badge]: https://img.shields.io/badge/docs-online-2020ff.svg?style=flat-square
[LICENSE.md]: https://github.com/zeyla/aur.rs/blob/master/LICENSE.md
[license]: https://opensource.org/licenses/ISC
[license-badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=flat-square
[rust badge]: https://img.shields.io/badge/rust-1.29+-93450a.svg?style=flat-square
[rust link]: https://blog.rust-lang.org/2018/05/10/Rust-1.29.html