-
Notifications
You must be signed in to change notification settings - Fork 23
/
Cargo.toml
117 lines (91 loc) · 3.17 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
[package]
name = "twitchchat"
edition = "2018"
version = "0.14.8"
authors = ["museun <[email protected]>"]
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.11", optional = true }
# field pin projection
pin-project-lite = { version = "0.2", optional = true }
# cloneable async writes
async-dup = { version = "1.2", optional = true }
# message passing
async-channel = { version = "1.5", optional = true }
# for timing out futures
futures-timer = { version = "3.0", optional = true }
# for 'fairness' in the main loop
fastrand = { version = "1.4", 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.3", optional = true }
smol = { version = "1.2", optional = true }
async-tls = { version = "0.11", 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.9", optional = true }
# tokio has its own AsyncWrite+AsyncRead
tokio = { version = "1.2", features = ["net"], optional = true }
tokio-util = { version = "0.6", features = ["compat"], optional = true }
# rustls
tokio-rustls = { version = "0.22", optional = true }
webpki-roots = { version = "0.21", optional = true }
# native-tls
tokio-native-tls = { version = "0.3", optional = true }
native-tls = { version = "0.2", optional = true }
# openssl
tokio-openssl = { version = "0.6", 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.4", default-features = false }
serde_json = "1.0"
rmp-serde = "0.15.4"
[[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"]