/twitchchat

interface to the irc portion of Twitch's chat

Primary LanguageRustApache License 2.0Apache-2.0

twitchchat

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

Runtime

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

TLS

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

Examples

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

License

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

See LICENSE-APACHE and LICENSE-MIT for details.