Skip to content
Rust HTTP client implementations for the Arch User Repository.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.editorconfig
.gitignore
.travis.yml
CHANGELOG.md
Cargo.toml
LICENSE.md
README.md

README.md

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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.