mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 17:38:10 +00:00
120 lines
3.4 KiB
TOML
120 lines
3.4 KiB
TOML
[package]
|
|
name = "websocket-gateway"
|
|
edition = "2018"
|
|
version = "0.0.1"
|
|
authors = [
|
|
"Brandon Thomas <bt@brand.io>",
|
|
"Brandon Thomas <echelon@gmail.com>",
|
|
]
|
|
publish = false
|
|
|
|
[[bin]]
|
|
name = "websocket-gateway"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
|
|
# Internal
|
|
config = { path = "../../lib/config" }
|
|
container_common = { path = "../../lib/container_common" }
|
|
database_queries = { path = "../../lib/database_queries" }
|
|
http_server_common = { path = "../../lib/http_server_common" }
|
|
redis_common = { path = "../../lib/redis_common" }
|
|
twitch_common = { path = "../../lib/twitch_common" }
|
|
|
|
# External
|
|
anyhow = "1.0.40"
|
|
base64 = "0.13.0"
|
|
chrono = { version = "0.4.19", features = ["serde"] }
|
|
derive_more = "0.99.14"
|
|
dotenv = "0.15.0"
|
|
easyenv = "0.0.6"
|
|
futures-timer = "3.0.2"
|
|
hex = "0.4.3"
|
|
hostname = "0.3.1"
|
|
lazy_static = "1.4.0"
|
|
lfu = "0.2.5"
|
|
log = "0.4.14"
|
|
rand = "0.8.3"
|
|
regex = "1.5.4"
|
|
time = "0.2.26"
|
|
uuid = { version = "0.8.2", features = ["v4"] }
|
|
|
|
# Runtime
|
|
# NB: We switched to Tokio from `async-std` for broader ecosystem support.
|
|
tokio = { version = "1.10.0", features = ["rt-multi-thread", "macros", "time"] }
|
|
|
|
# Futures
|
|
futures = { version = "0.3.17", features = ["thread-pool"] } # feature for ThreadPool
|
|
futures-util = "0.3.17"
|
|
futures_old_for_limiter = { package = "futures", version = "0.1.29" } # Older version of futures for `limiter` crate
|
|
|
|
# Threading
|
|
crossbeam = "0.8.1"
|
|
|
|
# MySql Database
|
|
# "offline" supports typesafe builds without a live database
|
|
# "rustls" doesn't appear to work with IP addresses, per:
|
|
# https://github.com/launchbadge/sqlx/issues/1095#issuecomment-798050828
|
|
#sqlx = { version = "0.5", features = [ "mysql", "runtime-async-std-native-tls", "offline", "chrono" ] }
|
|
sqlx = { version = "0.5", features = [ "mysql", "runtime-actix-native-tls", "offline", "chrono" ] }
|
|
#sqlx = { version = "0.4", features = [ "mysql", "runtime-tokio-native-tls", "offline", "chrono" ] }
|
|
|
|
# Redis Database
|
|
limitation = "0.1.1" # Redis rate limiter
|
|
r2d2_redis = "0.14.0"
|
|
|
|
# Twitch
|
|
# NB "unsupported" pubsub features may disappear from the Twitch API at any time. It's an unofficial API.
|
|
twitch_api2 = { version = "0.6.0-rc.2", features = ["helix", "reqwest_client", "pubsub", "chrono", "unsupported"] }
|
|
twitch_oauth2 = "0.6.0-rc.2"
|
|
|
|
# HTTP
|
|
reqwest = { version = "0.11.4" }
|
|
native-tls = "0.2.8"
|
|
|
|
# In-memory caching
|
|
lru_time_cache = "0.11.11"
|
|
|
|
# Web
|
|
actix = "0.12.0"
|
|
actix-cors = "0.5.4"
|
|
actix-files= "0.6.0-beta.8"
|
|
actix-http = "3.0.0-beta.11"
|
|
actix-rt = "2.4.0"
|
|
actix-service = "2.0.1"
|
|
actix-utils = "3.0.0"
|
|
actix-web = "4.0.0-beta.10"
|
|
actix-web-actors = "4.0.0-beta.7"
|
|
jwt = "0.13.0"
|
|
|
|
# Websockets
|
|
tokio-tungstenite = { version = "0.15.0", features = ["rustls", "rustls-tls"] }
|
|
|
|
# NB: Hyper is just for HTTP client use in jobs. I'd use Actix client, but I need tokio runtime
|
|
# NB: Furthermore, the Tokio runtime is old, so I have to use an older Hyper.
|
|
hyper = { version = "0.13.10" }
|
|
|
|
# Crypto
|
|
bcrypt = "0.8" # password hashes
|
|
hmac = "0.10.0" # cookies
|
|
magic-crypt = "3.1.8" # encrypting sort IDs for the frontend so we don't leak info
|
|
md-5 = "0.9.1" # gravatar
|
|
sha2 = "0.9.5" # file hashes, inference text hashes, etc.
|
|
|
|
# Serialization
|
|
serde = "1.0.125"
|
|
serde_derive = "1.0.125"
|
|
serde_json = "1.0.64"
|
|
toml = "0.5.8"
|
|
|
|
# Text processing
|
|
pulldown-cmark = "0.8.0"
|
|
|
|
# Temporary (just to ask for oauth credentials during dev)
|
|
rpassword = "5.0.1"
|
|
|
|
[build-dependencies]
|
|
# NB: Only using diesel for migrations support
|
|
diesel = { version = "1.4.6", features = ["mysql"] }
|