89 releases (14 breaking)

0.14.8 Nov 2, 2020
0.14.5 Oct 16, 2020
0.11.8 Jul 4, 2020
0.9.3 Mar 30, 2020
0.3.0 Mar 26, 2019

#1177 in Asynchronous

Download history 173/week @ 2023-06-04 20/week @ 2023-06-11 276/week @ 2023-06-18 102/week @ 2023-06-25 259/week @ 2023-07-02 78/week @ 2023-07-09 70/week @ 2023-07-16 97/week @ 2023-07-23 256/week @ 2023-07-30 91/week @ 2023-08-06 123/week @ 2023-08-13 470/week @ 2023-08-20 351/week @ 2023-08-27 109/week @ 2023-09-03 185/week @ 2023-09-10 188/week @ 2023-09-17

893 downloads per month
Used in 3 crates (2 directly)


10K SLoC


Documentation Crates Actions

This crate provides a way to interact with Twitch's chat.

Along with parse messages as Rust types, it provides methods for sending messages.

It also provides an 'event' loop which you can use to make a bot.

Opt-in features

By default, this crate depends on zero external crates -- but it makes it rather limited in scope. It can just parse/decode/encode to standard trait types (std::io::{Read, Write}).

To use the AsyncRunner (an async-event loop) you must able the async feature.

NOTE This is a breaking change from 0.12 which had the async stuff enabled by default.

twitchchat = { version = "0.14", features = ["async"] }

To use a specific TcpStream/TlStream refer to the runtime table below.

Serde support

To enable serde support, simply enable the optional serde feature


This crate is runtime agonostic. To use..

Read/Write provider Features
async_io async-io
smol smol
async_std async-std
tokio tokio and tokio-util


If you want TLS supports, enable the above runtime and also enable the cooresponding features:

Read/Write provider Runtime Features TLS backend
async_io async_io "async-tls" rustls
smol smol "async-tls" rustls
async_std async_std "async-tls" rustls
tokio tokio "tokio-util", "tokio-rustls", "webpki-roots" rustls
tokio tokio "tokio-util", "tokio-native-tls", "native-tls" native-tls
tokio tokio "tokio-util", "tokio-openssl", "openssl" openssl


Using async_io to connect with..

Using async_std to connect with..

Using smol to connect with..

Using tokio to connect with..

How to use the crate as just a message parser(decoder)/encoder

An a simple example of how one could built a bot with this


twitchchat is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).



~180K SLoC