[package] name = "chorus" description = "A library for interacting with multiple Spacebar-compatible Instances at once." version = "0.16.0" license = "MPL-2.0" edition = "2021" repository = "https://github.com/polyphony-chat/chorus" readme = "README.md" keywords = ["spacebar", "discord", "polyphony"] website = ["https://discord.com/invite/m3FpcapGDD"] rust-version = "1.70.0" [features] default = ["client", "rt-multi-thread"] backend = ["poem", "sqlx", "sqlx-pg-uint"] rt-multi-thread = ["tokio/rt-multi-thread"] rt = ["tokio/rt"] client = ["flate2"] voice = ["voice_udp", "voice_gateway"] voice_udp = ["dep:discortp", "dep:crypto_secretbox"] voice_gateway = [] sqlx-pg-uint = ["dep:sqlx-pg-uint", "sqlx-pg-uint/serde"] [dependencies] tokio = { version = "1.39.3", features = ["macros", "sync"] } serde = { version = "1.0.209", features = ["derive", "rc"] } serde_json = { version = "1.0.127", features = ["raw_value"] } serde-aux = "4.5.0" serde_with = "3.9.0" serde_repr = "0.1.19" reqwest = { features = [ "multipart", "json", "rustls-tls-webpki-roots", ], version = "=0.11.26", default-features = false } url = "2.5.2" chrono = { version = "0.4.38", features = ["serde"] } regex = "1.10.6" custom_error = "1.9.2" futures-util = "0.3.30" http = "0.2.12" base64 = "0.21.7" bitflags = { version = "2.6.0", features = ["serde"] } lazy_static = "1.5.0" poem = { version = "3.0.1", features = ["multipart"], optional = true } thiserror = "1.0.63" jsonwebtoken = "8.3.0" log = "0.4.22" async-trait = "0.1.81" chorus-macros = { path = "./chorus-macros", version = "0" } # Note: version here is used when releasing. This will use the latest release. Make sure to republish the crate when code in macros is changed! sqlx = { version = "0.8.1", features = [ "json", "chrono", "ipnetwork", "runtime-tokio-rustls", "postgres", "bigdecimal", ], optional = true } discortp = { version = "0.5.0", optional = true, features = [ "rtp", "discord", "demux", ] } crypto_secretbox = { version = "0.1.1", optional = true } rand = "0.8.5" flate2 = { version = "1.0.33", optional = true } webpki-roots = "0.26.3" pubserve = { version = "1.1.0", features = ["async", "send"] } sqlx-pg-uint = { version = "0.5.0", features = ["serde"], optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] rustls = "0.21.12" tokio-tungstenite = { version = "0.20.1", features = [ "rustls-tls-webpki-roots", ] } hostname = "0.3.1" getrandom = { version = "0.2.15" } [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2.15", features = ["js"] } ws_stream_wasm = "0.7.4" wasm-bindgen-futures = "0.4.43" wasmtimer = "0.2.0" [dev-dependencies] lazy_static = "1.5.0" wasm-bindgen-test = "0.3.43" wasm-bindgen = "0.2.93" simple_logger = { version = "5.0.0", default-features = false } [lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(tarpaulin_include)'] }