#discord-bot #discord #reqwest #org #sync #api-bindings #default

discord-bots-org

Bindings for the discordbots.org API

1 unstable release

0.1.0 Jan 27, 2019

#60 in #org

ISC license

39KB
644 lines

travis-badge license-badge docs-badge rust badge

An unofficial Rust library acting as a wrapper around the Discord Bot List API, offering implementations for both sync and async reqwest (v0.9).

Compile features

  • reqwest-sync-support: Compliles with sync reqwest support (default)
  • reqwest-async-support: Compiles with async reqwest support

Note that reqwest-async-support requires nightly for the unstable core::future API.

Installation

This library requires at least Rust 1.31.0.

Add the following to your Cargo.toml file:

[dependencies]
discord-bots-org = "0.1"

To enable both async reqwest-async and reqwest-sync support:

[dependencies.discord-bots-org]
version = "0.1"
features = ["reqwest-async-support", "reqwest-sync-support"]

To enable reqwest-async-support but not reqwest-sync-support:

[dependencies.discord-bots-org]
version = "0.1"
default-features = false
features = ["reqwest-async-support"]

Examples

Using reqwest synchronously, request a bot by ID:

extern crate discord_bot_list;
extern crate reqwest;

use discord_bot_list::ReqwestSyncClient as ApiClient;
use reqwest::Client as ReqwestClient;
use std::{
    error::Error,
    sync::Arc,
};

fn main() -> Result<(), Box<Error>> {
    // Create the Reqwest Client.
    let reqwest_client = Arc::new(ReqwestClient::new());

    // Create the API Client.
    let client = ApiClient::new(Arc::clone(&reqwest_client));

    // Request the bot information.
    let bot = client.get_bot(270_198_738_570_444_801)?;

    println!("The bot's name is: {}", bot.username);

    Ok(())
}

Examples are sparse for asynchronous reqwest. It is assumed that if you're using unstable asynchronous Rust APIs that you're already proficient in them.

For more examples, refer to the examples folder.

License

ISC. View the full license here.

Dependencies

~3–8MB
~166K SLoC