mirror of
https://github.com/nestriness/nestri.git
synced 2026-09-19 09:15:19 +03:00
The component nescapture, neswire and nescope all talk to, and the only thing in the guest that speaks to the client. It muxes their frames into one iroh QUIC endpoint and fans input back. Renamed from nestri-guest-hub, which named a location rather than a job. Four files came across unchanged -- session.rs, ipc_listener.rs, ticket.rs, screenshot.rs. Between them they mention Steam zero times, and they import only nesprotocol's open modules; the control feature carrying LaunchIntent and SteamIdentity is used exclusively by the three files that are staying closed. The two clusters shared a main.rs and nothing else, so there was no untangling to do -- only a cut. main.rs loses --proton, --steamclient-so, --root and the game uid/gid, and no longer ends by handing the process to a controller. It runs until it is stopped. Deciding when the box is finished belongs to nesinit. The ticket used to leave via that controller, so it needed a new way out: neshub now serves it on a socket and nesinit dials for it. Listening rather than dialling matches every other socket here and means no startup ordering to get wrong. Three tests, where there were none -- the ticket crosses a process boundary as text now, so a round trip that drops a field would otherwise be found by whoever cannot connect.
30 lines
680 B
TOML
30 lines
680 B
TOML
[package]
|
|
name = "neshub"
|
|
version = "0.1.0"
|
|
description = "Muxes captured video, audio and input into one QUIC connection to the client"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
[[bin]]
|
|
name = "neshub"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# The transport. One endpoint per box; clients dial it with a ticket.
|
|
iroh = "1.0.0"
|
|
|
|
anyhow.workspace = true
|
|
clap.workspace = true
|
|
libc.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
tokio.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
|
|
base64 = "0.22"
|
|
uuid = { version = "1", features = ["v7"] }
|
|
|
|
nesprotocol = { path = "../../crates/nesprotocol" }
|