[![travis-badge][]][travis] [![license-badge][]][license] [![docs-badge][]][docs] [![rust badge]][rust link] 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: ```toml [dependencies] discord-bots-org = "0.1" ``` To enable both async `reqwest-async` and `reqwest-sync` support: ```toml [dependencies.discord-bots-org] version = "0.1" features = ["reqwest-async-support", "reqwest-sync-support"] ``` To enable `reqwest-async-support` but not `reqwest-sync-support`: ```toml [dependencies.discord-bots-org] version = "0.1" default-features = false features = ["reqwest-async-support"] ``` ### Examples Using reqwest synchronously, request a bot by ID: ```rust 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> { // 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][license]. [LICENSE.md]: https://github.com/dabbotorg/discord-bots-org.rs/blob/master/LICENSE.md [Discord Bot List]: https://discordbots.org [crates.io]: https://crates.io/crates/discord-bots-org [docs]: https://docs.rs/discord-bots-org [docs-badge]: https://img.shields.io/badge/docs-online-2020ff.svg?style=flat-square [examples]: https://github.com/dabbotorg/discord-bots-org.rs/tree/master/examples [license]: https://github.com/dabbotorg/discord-bots-org.rs/blob/master/LICENSE.md [license-badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=flat-square [rust badge]: https://img.shields.io/badge/rust-1.31.0+-93450a.svg?style=flat-square [rust link]: https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html [travis]: https://travis-ci.org/dabbotorg/discord-bots-org.rs [travis-badge]: https://img.shields.io/travis/dabbotorg/discord-bots-org.rs.svg?style=flat-square