railgun

Crates.iorailgun
lib.rsrailgun
version0.1.2
sourcesrc
created_at2019-12-27 21:33:51.585569
updated_at2019-12-27 22:01:18.794864
descriptionA Discord API library written in Rust supporting native async/await.
homepage
repositoryhttps://github.com/mental32/railgun
max_upload_size
id192771
size11,554
mental (mental32)

documentation

README

railgun

A Discord API Library written in Rust using native async/await

Index

Brief

Was bored. Started messing around with native async/await in Rust, wanted to test it out whilst writing a discord library.

Status

MVP

  • REST API Coverage
  • Websocket gateway coverage
  • Voice support?
  • Event listeners via procedural macros

Examples

Disclaimer! The examples shown below are what the library is aiming to eventually look like.

Ping pong

use {
    std::{env, io},
    railgun::{Client, register}
}

#[railgun::event(on = "MESSAGE_CREATE")]
async fn on_message(client: &Client, message: Message) -> Option<railgun::Error> {
    println!("{:?}", message);

    if message.content.starts_with("?ping") {
        client.send(&message.channel, "Pong!").await?;
    }

    None
}

#[tokio::main]
async fn main() {
    Client::default()
        .mount(register![on_message])
        .run(env::var("DISCORD_TOKEN")).await
        .expect("Could not start discord client.");
}
Commit count: 0

cargo fmt