10 releases

0.1.10 Mar 25, 2024
0.1.9 Mar 21, 2024

#2116 in Web programming

GPL-3.0-only

96KB
2.5K SLoC

descord

Descord is a discord api wrapper.

Example

use descord::prelude::*;

#[tokio::main]
async fn main() {
    let mut client = Client::new(
        "TOKEN",
        GatewayIntent::MessageContent | GatewayIntent::GuildMessages,
        "!" // default prefix
    )
    .await;

    client.register_commands(vec![ping()]);
    client.register_events(vec![ready()]);

    client.login().await;
}

#[descord::command("ping")]
async fn ping(data: MessageData) {
    let clock = std::time::Instant::now();
    let msg = data.reply("Pong!").await;
    let latency = clock.elapsed().as_millis();

    msg.edit(format!("Pong! `{}ms`", latency)).await;
}

// Event type will be inferred from function name
#[descord::event_handler]
async fn ready(data: ReadyData) {
    println!(
        "Logged in as: {}#{}",
        data.user.username, data.user.discriminator
    );
}

Dependencies

~11–29MB
~425K SLoC