5 releases

0.2.3 Jan 5, 2022
0.2.2 Jan 5, 2022
0.1.2 Dec 30, 2021

#1271 in Asynchronous

Unlicense

33KB
447 lines

Circe

crates.io Documentation Unlicense

Circe is a an IRC crate built to be as minimal as possible. It's currently work-in-progress, and more stuff is on its way!

Getting started

To start using Circe, just add the crate to your Cargo.toml, and then follow the example below.

use async_circe::{commands::Command, Client, Config};

#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<(), tokio::io::Error> {
    let config = Config::new(
        &["#chaos", "#async-circe"],
        "karx.xyz",
        Some("+B"),
        Some("async-circe"),
        6697,
        "circe",
    );
    let mut client = Client::new(config).await.unwrap();
    client.identify().await.unwrap();

    loop {
        if let Some(command) = client.read().await? {
            if let Command::PRIVMSG(nick, channel, message) = command {
                println!("{} in {}: {}", nick, channel, message);
            }
        }
    }
}

Happy hacking!

Dependencies

~3–15MB
~157K SLoC