1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-03 15:20:05 -04:00

egui_kittest_mcp: cross-platform local socket via interprocess

Port the bridge listener (was tokio::net::UnixListener) and the shim client
(was std::os::unix::net::UnixStream) to the interprocess crate, so the MCP
inspection transport builds and runs on Windows (named pipe) as well as
unix/macOS (unix domain socket).

- bridge: bind via interprocess local_socket::tokio Listener + ListenerOptions;
  accept() yields a single Stream, split into async halves. read/write_message
  are now generic over AsyncRead/AsyncWrite.
- shim: connect via interprocess sync Stream and split for the byte relay;
  closing the write direction is done by dropping the send half.
- Allocate/parse socket names through egui_inspection::transport, so both ends
  agree on the platform-specific mapping. Drop the now-unused tempfile dep.
- Add a transport round-trip test (tokio listener <-> sync client).
This commit is contained in:
lucasmerlin
2026-05-26 14:26:10 +02:00
parent e15ba138d6
commit 2fced8012c
5 changed files with 132 additions and 71 deletions

View File

@@ -18,8 +18,9 @@ path = "src/main.rs"
[dependencies]
egui_kittest = { workspace = true, features = ["inspector_api", "wgpu", "snapshot"] }
egui_inspection = { workspace = true, features = ["protocol"] }
egui_inspection = { workspace = true, features = ["protocol", "transport"] }
egui.workspace = true
interprocess = { version = "2.4", features = ["tokio"] }
accesskit.workspace = true
accesskit_consumer.workspace = true
image = { workspace = true, features = ["png"] }
@@ -28,7 +29,6 @@ serde = { workspace = true, features = ["derive"] }
serde_json = "1.0"
schemars = "1.0"
rmcp = { version = "1.7", features = ["server", "macros", "transport-io", "schemars"] }
tempfile.workspace = true
tokio = { version = "1.49", features = [
"rt-multi-thread",
"io-std",