11 releases (4 breaking)

0.5.3 Jun 13, 2020
0.5.2 May 26, 2020
0.4.2 May 24, 2020
0.4.0 Apr 30, 2020
0.1.0 Mar 13, 2020

#105 in #async-std

29 downloads per month

MIT/Apache

145KB
3K SLoC



A powerful async Rust library for interacting with Discord's API

Even thought this library is usable, it still under development, so don't use for production yet.

Note that this library doesn't support the 100% of discord API yet, for example voice. See TODO list to more information.

Installation

cargo add panda

or in Cargo.toml

panda = "0.5.3"

Configuring async runtime

panda supports tokio and async-std runtimes, by default it uses tokio, to use async-std change the feature flags in Cargo.toml

[dependencies.panda]
version = "0.5.3"
default-features = false
features = ["async-std-runtime"]

Example usage

It will print the bot name when the bot is ready.

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {

    let mut client = panda::new("your token here").await?;

    client.on_ready(|s, ready| async move {
        println!("Bot {} is ready", ready.user.username);

        Ok(())
    });

    client.start().await?;

    Ok(())
}

All events are in the Discord Documentation, and to use it in client, you have to use client.on_ plus the event in snake case.

TODO list

  • Finish http requests.
  • Improve panda error.
  • Add voice support.
  • Improve documentation.
  • Add tests

Dependencies

~14–32MB
~517K SLoC