hubbub

Crates.iohubbub
lib.rshubbub
version0.10.1
sourcesrc
created_at2024-06-16 06:39:22.759656
updated_at2024-10-21 00:10:59.358214
descriptionDiscord self-bot library for rust
homepage
repositoryhttps://github.com/zxcv05/hubbub
max_upload_size
id1273305
size245,835
(zxcv05)

documentation

README

Hubbub

Rust library for creating discord self-bots (very early in development)

Current features

  • Allows passing a model
  • Connects to gateway with token
  • Supports reconnecting to gateway (semi tested, should work)
  • Supports making calls to discords http api (any version)
  • Supports sending and receiving gateway events
  • Most of discord's many, MANY, data structures have been translated into serde-compatible structs
  • Major structs have convenience functions for doing common tasks (eg: creating a message)

Using the library

  1. Add the library to your project using cargo add hubbub
  2. Import hubbub::prelude::*:
  3. Create your model
struct App {
    // ...
}
  1. Create the client
#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut client = Client::new(
        App { /* ... */ },
        /* Event handler */
    ).await?;

    client.token(/* Token */).await?;
    client.login().await?;
    client.run().await?;
}
  1. Create the event handler
async fn main() {
    // ...
    
    /* Event handler */
    Box::from(
        |ctx: Ctx, ws: Ws, model: Model<App>, msg: DiscordMessage| async move {
            /* do work here */
        }
    )
    
    // ...
}
  1. Success, hopefully!

Any questions?

  • Look at the examples
  • Look at the Context and DiscordMessage structs
  • Look at prelude
Commit count: 81

cargo fmt