[package]
name = "re_ws_comms"
authors.workspace = true
description = "WebSocket communication library (encoding, decoding, client, server) between a Rerun server and viewer"
edition.workspace = true
homepage.workspace = true
include.workspace = true
license.workspace = true
publish = true
readme = "README.md"
repository.workspace = true
rust-version.workspace = true
version.workspace = true
[package.metadata.docs.rs]
all-features = true
[features]
client = ["ewebsock"]
server = [
"dep:futures-channel",
"dep:futures-util",
"dep:parking_lot",
"dep:re_smart_channel",
"dep:tokio-tungstenite",
"dep:tokio",
"tungstenite",
]
tls = [
"ewebsock/tls",
"tungstenite/rustls-tls-webpki-roots",
]
[dependencies]
re_log.workspace = true
re_log_types = { workspace = true, features = ["serde"] }
re_tracing.workspace = true
anyhow.workspace = true
bincode.workspace = true
document-features.workspace = true
thiserror.workspace = true
ewebsock = { workspace = true, optional = true }
re_smart_channel = { workspace = true, optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
futures-channel = { workspace = true, optional = true }
futures-util = { workspace = true, optional = true, default-features = false, features = [
"sink",
"std",
] }
parking_lot = { workspace = true, optional = true }
tokio-tungstenite = { workspace = true, optional = true }
tokio = { workspace = true, optional = true, features = [
"io-std",
"macros",
"net",
"rt-multi-thread",
"sync",
"time",
] }
tungstenite = { workspace = true, optional = true, default-features = false }