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
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-rs
是twitch-irc-benchmarks的一部分,其中它是当前最快的实现,比第二好的Rust实现快近6倍。这是因为底层的IRC消息解析器是手写的,并使用x86和ARM上的SIMD进行了加速。对于其他所有架构,都有一个标量回退。
致谢
最初基于dank-twitch-irc和twitch-irc-rs。大量测试消息直接来自twitch-irc-rs。
依赖项
~0–10MB
~111K SLoC