mirror of
https://github.com/CloudNebulaProject/wayray.git
synced 2026-04-10 13:10:41 +00:00
Implement QUIC networking for wrsrvd (server) and wrclient (client) using quinn over rustls with self-signed certificates. Three logical channels: control (bidirectional), display (server->client unidirectional), and input (client->server unidirectional). Server runs tokio in a background thread, communicating with the compositor via std::sync::mpsc channels. Client exposes an async connect() API that returns a ServerConnection with methods for sending input and receiving frames. Key design note: quinn streams are lazily materialized -- accept_bi/ accept_uni on the peer won't resolve until data is written. The handshake protocol accounts for this by having each side write immediately after opening streams.
27 lines
751 B
TOML
27 lines
751 B
TOML
[workspace]
|
|
resolver = "3"
|
|
members = [
|
|
"crates/wayray-protocol",
|
|
"crates/wrsrvd",
|
|
"crates/wrclient",
|
|
"crates/wradm",
|
|
]
|
|
|
|
[workspace.package]
|
|
edition = "2024"
|
|
version = "0.1.0"
|
|
license = "MPL-2.0"
|
|
|
|
[workspace.dependencies]
|
|
wayray-protocol = { path = "crates/wayray-protocol" }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
miette = { version = "7", features = ["fancy"] }
|
|
thiserror = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
postcard = { version = "1", features = ["alloc"] }
|
|
zstd = "0.13"
|
|
quinn = "0.11"
|
|
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
|
|
rcgen = "0.13"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "sync"] }
|