@ajna-inc/webtransport-sidecar
v0.1.2
Published
Go WebTransport sidecar launcher and factory for Credo-TS
Readme
@ajna-inc/webtransport-sidecar
Launcher and factory utilities for the Credo WebTransport sidecar.
This package ships both a Node.js factory/launcher and the Go sidecar source under ./go. We do not auto-build the binary on install to keep installs clean and predictable. You can:
- Use a prebuilt platform package (recommended) or place your binary on PATH and let
resolveBinary()find it. - Or pass an explicit path using
resolveBinary({ binPath }).
Install
If you want to build locally:
cd go
go mod tidy
go build -o ../bin/credo-wt-sidecar ./cmd/sidecarThen resolveBinary() will find ./bin/credo-wt-sidecar.
API
resolveBinary({ binPath?, fallbackName? })→ stringstartSidecar(binary, options)→ ChildProcess{ mode: 'sidecar-uds', path: '/var/run/credo-wt.sock' }{ mode: 'sidecar-tcp', host?: '127.0.0.1', port: 7777 }
makeFactory(options)→ WebTransportFactory bound to the sidecar IPC endpoint.
Example
import { Agent } from '@credo-ts/core'
import { createNodeAgentDependencies } from '@credo-ts/node'
import { resolveBinary, startSidecar } from '@ajna-inc/webtransport-sidecar'
import { WebTransportOutboundTransport } from '@credo-ts/core'
import { WebTransportInboundTransport, SidecarServerAdapter } from '@credo-ts/node'
const sidecarBin = resolveBinary()
const ipc = { mode: 'sidecar-uds' as const, path: '/tmp/credo-wt.sock' }
const child = startSidecar(sidecarBin, ipc)
const dependencies = createNodeAgentDependencies({ webTransport: ipc })
const agent = new Agent({ config, dependencies, modules })
agent.registerOutboundTransport(new WebTransportOutboundTransport())
agent.registerInboundTransport(new WebTransportInboundTransport({ adapter: new SidecarServerAdapter() }))
await agent.initialize()