feat(napi): implement serve() function with WraithServer, WraithServerStream, and ConnectionInfo

Expose NAPI serve() per ADR-016. WraithServer provides close() and
onConnection(callback) for receiving SSH channel streams from
incoming connections. Each connection produces a WraithServerStream
(Duplex-like read/write/close) with ConnectionInfo (remoteAddr,
transportKind). Supports TCP transport with optional authorizedKeys
and certAuthority auth. TLS and iroh transports return helpful errors
indicating future support.
This commit is contained in:
2026-06-02 20:05:13 +00:00
parent 62d57dd477
commit 0fdb6cd782
5 changed files with 738 additions and 22 deletions

View File

@@ -10,5 +10,6 @@ crate-type = ["cdylib"]
wraith-core = { path = "../wraith-core", features = ["tls", "iroh"] }
napi = { version = "3", features = ["async", "error_anyhow"] }
napi-derive = "3"
tokio = { version = "1", features = ["io-util", "sync"] }
russh = "0.49"
tokio = { version = "1", features = ["io-util", "sync", "rt", "macros", "net", "time", "signal"] }
russh = "0.49"
async-trait = "0.1"