44 lines
1.7 KiB
TOML
44 lines
1.7 KiB
TOML
[package]
|
|
name = "figcraft-collab-net"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "FigCraft live sessions over the network: the WebSocket transport, the session host the app embeds, invite links and presence relay (carries figcraft-collab's messages)"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
figcraft-engine = { workspace = true }
|
|
figcraft-collab = { workspace = true }
|
|
figcraft-doc = { workspace = true }
|
|
log = { workspace = true }
|
|
# `std::time::Instant` natively, the browser's clock in the web build.
|
|
web-time = "1"
|
|
|
|
# Native transport: blocking tungstenite with a reader and a writer thread per connection.
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
tungstenite = { version = "0.30", default-features = false, features = ["handshake"] }
|
|
# `wss://`: TLS with ring as the crypto provider and Mozilla's root certificates compiled in (no
|
|
# OS certificate store, no OpenSSL). Over our own split reader/writer stream (`tls.rs`), so not
|
|
# tungstenite's single-owner TLS stream.
|
|
rustls = { version = "0.23", default-features = false, features = ["std", "ring", "tls12", "logging"] }
|
|
rustls-pki-types = { version = "1", features = ["std"] }
|
|
webpki-roots = "1"
|
|
getrandom = "0.4"
|
|
base64 = { workspace = true }
|
|
|
|
# The browser client: the page's WebSocket API.
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
wasm-bindgen = "0.2"
|
|
js-sys = "0.3"
|
|
web-sys = { version = "0.3", features = ["Window", "Location", "WebSocket", "BinaryType", "MessageEvent", "CloseEvent"] }
|
|
|
|
# Opening invite links: the per-user URL handler registration on Windows.
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-registry = "0.6"
|
|
|
|
[dev-dependencies]
|
|
proptest = { workspace = true }
|
|
serde_json = { workspace = true }
|