Skip to content

Releases: go-wasmcontainers/relay

v0.3.1

Choose a tag to compare

@tannevaled tannevaled released this 28 Oct 08:31
5fd8067

What's Changed

  • deps: golang.org/x/net v0.62.0 (GO-2026-6860, GO-2026-6866) by @tannevaled in #10

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@tannevaled tannevaled released this 27 Oct 20:00
052bd12

What's Changed

  • chore(flowmap): go-widgets/toolkit v0.345.0, which links less by @tannevaled in #8
  • server: CORS allowlist on the public listener (--cors-origin) by @tannevaled in #9

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@tannevaled tannevaled released this 26 Oct 18:09
596cf54

What's Changed

  • --admin-socket, and a clear error for a socket path past sun_path by @tannevaled in #4

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@tannevaled tannevaled released this 26 Oct 17:38
142f667

The live flow map (milestone M-relay-2b): a page the relay serves that draws the class's flows as they happen.

wctr-relay flowmap --class <class> --url https://relay.local:8443   # prints the link for the projector
  • Students are boxes holding their containers, coloured by security group; flows are lines whose width follows throughput; refused flows flash as dashed red lines, with the missing rule in the event log. Click for details; the filter box dims the rest.
  • FlowLogService.WatchFlowMap (Connect server stream): one aggregated update per tick (4 Hz), coalesced for a slow reader, capped at 400 containers and 2 000 flows. FlowMapService.FlowMapTicket: a read-only, 12-hour ticket (admin listener only). A student's session sees only their own flows.
  • The page is Go WebAssembly on go-widgets GraphView (toolkit v0.343.0), served under script-src 'self' 'wasm-unsafe-eval' with nothing from elsewhere.
  • Tested in Chromium and Firefox (Playwright) against an in-process relay with real flows.

The binaries attached below include the page (-tags flowmap; its WebAssembly is ~5 MB, not committed). A plain go install …@v0.2.0 serves the page without it and says so.

🤖 Generated with Claude Code

v0.1.0

Choose a tag to compare

@tannevaled tannevaled released this 26 Oct 15:47
12e637d

First release of wctr-relay, the classroom relay and firewall for WASI containers: milestones M-relay-1 and M-relay-2 of the design.

go install github.com/go-wasmcontainers/relay/cmd/wctr-relay@v0.1.0
  • One secure WebSocket per browser or engine, frame protocol v1; the session token is checked before the upgrade.
  • Classes, sessions (one subnet each, the teacher on subnet 0), container addresses and <container>.<student>.class names assigned by the relay.
  • Security groups after OpenStack Neutron: default deny, allow-only rules, both ends, remote prefix and group, stateful (connection tracking) and stateless groups; rule changes reset the flows they revoke; a flow log.
  • Quotas and rate limits per session and per class.
  • Control API (connect-go: gRPC, gRPC-Web, Connect) and the wctr-relay cobra CLI; admin on a 0600 Unix socket.
  • TLS: an internal name-constrained CA, or go-authn/servercert (files, ACME); OpenID Connect through go-authn/oidc.
  • driver: the client package an engine uses (also js/wasm); the contract is docs/NETWORKDRIVER.md.

Not yet: the engine's use of it, the browser path, the live flow map, ICMP, IPv6, high availability; benchmark numbers (deferred: the measuring machine was loaded).

🤖 Generated with Claude Code