12个版本 (6个破坏性版本)

0.7.2 2024年8月15日
0.7.1 2024年6月22日
0.6.1 2024年6月14日
0.6.0 2024年3月31日
0.4.0 2023年11月12日

#1009网络编程

每月38次 下载
用于 rsllm

MIT 许可证

225KB
5K SLoC

tmi-rs文档 最新版本

闪电般快速 🚀 Rust 🦀 库,用于与 twitch.tv 的聊天界面交互。

快速开始

$ cargo add tmi anyhow tokio -F tokio/full
const CHANNELS: &[&str] = &["#forsen"];

#[tokio::main]
async fn main() -> anyhow::Result<()> {
  let mut client = tmi::Client::anonymous().await?;
  client.join_all(CHANNELS).await?;

  loop {
    let msg = client.recv().await?;
    match msg.as_typed()? {
      tmi::Message::Privmsg(msg) => {
        println!("{}: {}", msg.sender().name(), msg.text());
      }
      tmi::Message::Reconnect => {
        client.reconnect().await?;
        client.join_all(CHANNELS).await?;
      }
      tmi::Message::Ping(ping) => {
        client.pong(&ping).await?;
      }
      _ => {}
    }
  }
}

性能

使用jest调用库非常快,但确实tmi-rs非常快。tmi-rstwitch-irc-benchmarks的一部分,其中它是当前最快的实现,比第二好的Rust实现快近6倍。这是因为底层的IRC消息解析器是手写的,并使用x86和ARM上的SIMD进行了加速。对于其他所有架构,都有一个标量回退。

致谢

最初基于dank-twitch-irctwitch-irc-rs。大量测试消息直接来自twitch-irc-rs

依赖项

~0–10MB
~111K SLoC