channels: add socat daemon for generic stream channels

consciousness-channel-socat listens on a unix socket for incoming
connections, turning each into a bidirectional text channel. Also
supports outbound connections via the open RPC (tcp: or unix:).

Two sockets:
  socat.sock        — capnp RPC (channel protocol)
  socat.stream.sock — data (incoming connections become channels)

No config file needed. The simplest possible channel daemon.

Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2026-04-04 22:48:33 -04:00
parent 2a84fb325d
commit 7123c9166d
4 changed files with 355 additions and 1 deletions

17
channels/socat/Cargo.toml Normal file
View file

@ -0,0 +1,17 @@
[package]
name = "consciousness-channel-socat"
version.workspace = true
edition.workspace = true
[dependencies]
capnp = "0.20"
capnp-rpc = "0.20"
dirs = "6"
futures = "0.3"
json5 = "0.4"
poc-memory = { path = "../.." }
serde = { version = "1", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["compat"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }