[package] name = "twitchchat" edition = "2018" version = "0.14.8" authors = ["museun "] keywords = ["twitch", "irc", "async", "asynchronous", "tokio"] license = "MIT OR Apache-2.0" readme = "README.md" description = "interface to the irc-side of twitch's chat system" documentation = "https://docs.rs/twitchchat/latest/twitchchat/" repository = "https://github.com/museun/twitchchat" categories = ["asynchronous", "network-programming", "parser-implementations"] [package.metadata.docs.rs] rustdoc-args = ["--cfg", "docsrs"] all-features = true [features] default = [] testing = [ "async", "async-mutex", ] async = [ "async-channel", "async-dup", "fastrand", "futures-lite", "futures-timer", "log", "pin-project-lite", ] [dependencies] # logging support log = { version = "0.4", optional = true, features = ["std"] } # just the futures traits futures-lite = { version = "1.8", optional = true } # field pin projection pin-project-lite = { version = "0.1", optional = true } # cloneable async writes async-dup = { version = "1.2", optional = true } # message passing async-channel = { version = "1.4", optional = true } # for timing out futures futures-timer = { version = "3.0", optional = true } # for 'fairness' in the main loop fastrand = { version = "1.3", optional = true } # for optional serialization and deserialization serde = { version = "1.0", features = ["derive"], optional = true } # optional runtimes (for TcpStream) # these use the futures AsyncWrite+AsyncRead async-io = { version = "1.1", optional = true } smol = { version = "1.2", optional = true } async-tls = { version = "0.10", default-features = false, features = ["client"], optional = true } # TODO look into what their features do. the ones they have enabled by default seem important async-std = { version = "1.6", optional = true } # tokio has its own AsyncWrite+AsyncRead tokio = { version = "0.2", features = ["net"], optional = true } tokio-util = { version = "0.3", features = ["compat"], optional = true } # rustls tokio-rustls = { version = "0.14", optional = true } webpki-roots = { version = "0.20", optional = true } # native-tls tokio-native-tls = { version = "0.1", optional = true } native-tls = { version = "0.2", optional = true } # openssl tokio-openssl = { version = "0.4", optional = true } openssl = { version = "0.10", optional = true, features = ["v110"] } # for some test utilities async-mutex = { version = "1.4", optional = true } [dev-dependencies] anyhow = "1.0" async-executor = { version = "1.3", default-features = false } serde_json = "1.0" rmp-serde = "0.14" [[example]] name = "message_parse" required-features = ["async"] [[example]] name = "smol_demo" required-features = ["smol", "async"] [[example]] name = "async_io_demo" required-features = ["async-io", "async"] [[example]] name = "async_std_demo" required-features = ["async-std", "async-std/attributes", "async"] [[example]] name = "tokio_demo" required-features = ["tokio/full", "tokio-util", "async"] [[example]] name = "simple_bot" required-features = ["smol", "async"]