Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
compress-assets
command
Command compress-assets precompresses the built web client into .br (brotli) and .gz (gzip) siblings, so the relay can serve the smallest encoding each client accepts.
|
Command compress-assets precompresses the built web client into .br (brotli) and .gz (gzip) siblings, so the relay can serve the smallest encoding each client accepts. |
|
kibitz
command
Command kibitz is the relay server.
|
Command kibitz is the relay server. |
|
kibitz-wasm
command
Native stub so `go build ./...` and `go vet ./...` succeed on the host — the real entrypoint is main.go, built only under GOOS=js GOARCH=wasm.
|
Native stub so `go build ./...` and `go vet ./...` succeed on the host — the real entrypoint is main.go, built only under GOOS=js GOARCH=wasm. |
|
internal
|
|
|
bot
Package bot is the solo "Play the computer" opponent.
|
Package bot is the solo "Play the computer" opponent. |
|
crypto
Package crypto is kibitz's security boundary.
|
Package crypto is kibitz's security boundary. |
|
dashboard
Package dashboard serves a read-only admin view of the relay's blind-safe internal state, gated by GitHub OAuth and restricted to an allowlisted set of usernames.
|
Package dashboard serves a read-only admin view of the relay's blind-safe internal state, gated by GitHub OAuth and restricted to an allowlisted set of usernames. |
|
ginrummy
Package ginrummy is a pure-logic rules and scoring library for two-player Gin Rummy, operating on plain card indices (0..51) with no crypto, networking, or service dependencies.
|
Package ginrummy is a pure-logic rules and scoring library for two-player Gin Rummy, operating on plain card indices (0..51) with no crypto, networking, or service dependencies. |
|
mentalpoker
Package mentalpoker implements the cryptographic core of a dealerless card shuffle ("mental poker"): a commutative cipher that lets two players jointly shuffle and deal a deck so that neither player — nor the blind relay — learns the deck order or the other's hand, yet every card can be revealed and verified at showdown.
|
Package mentalpoker implements the cryptographic core of a dealerless card shuffle ("mental poker"): a commutative cipher that lets two players jointly shuffle and deal a deck so that neither player — nor the blind relay — learns the deck order or the other's hand, yet every card can be revealed and verified at showdown. |
|
phrase
Package phrase generates croc-style code phrases and derives session IDs from them.
|
Package phrase generates croc-style code phrases and derives session IDs from them. |
|
pushfwd
Package pushfwd is a keyless Web Push forwarder.
|
Package pushfwd is a keyless Web Push forwarder. |
|
relay
Package relay implements the kibitz relay server: a blind frame forwarder.
|
Package relay implements the kibitz relay server: a blind frame forwarder. |
|
service
Package service defines the layered-service abstraction and the mux that routes decrypted envelopes to services.
|
Package service defines the layered-service abstraction and the mux that routes decrypted envelopes to services. |
|
service/backgammon
The backgammon service: engine + fair dice + turn protocol.
|
The backgammon service: engine + fair dice + turn protocol. |
|
service/battleship
The battleship service — kibitz's flagship: hidden ship placement with NO trusted server anywhere.
|
The battleship service — kibitz's flagship: hidden ship placement with NO trusted server anywhere. |
|
service/chat
Package chat is the simplest layered service: broadcast text messages with a bounded history that late joiners receive via the ctl snapshot.
|
Package chat is the simplest layered service: broadcast text messages with a bounded history that late joiners receive via the ctl snapshot. |
|
service/checkers
The checkers service: game.Table lifecycle, on-demand Start, forced-move validation by membership, applyAndHash convention (hash after advance, identical on send and receive paths).
|
The checkers service: game.Table lifecycle, on-demand Start, forced-move validation by membership, applyAndHash convention (hash after advance, identical on send and receive paths). |
|
service/chess
Package chess is the first game service, wrapping corentings/chess for rules.
|
Package chess is the first game service, wrapping corentings/chess for rules. |
|
service/connect4
Connect Four rules — pure logic, no protocol.
|
Connect Four rules — pure logic, no protocol. |
|
service/dots
Dots and Boxes rules — pure logic, no protocol.
|
Dots and Boxes rules — pure logic, no protocol. |
|
service/game
Package game holds the seat/lifecycle logic every two-player game service shares: who sits where, who may start a game, rematch seat-swapping, and forfeit-on-leave.
|
Package game holds the seat/lifecycle logic every two-player game service shares: who sits where, who may start a game, rematch seat-swapping, and forfeit-on-leave. |
|
service/gin
Package gin is the Gin Rummy service: a two-player card game dealt with a dealerless "mental poker" shuffle (internal/mentalpoker) so neither player nor the blind relay ever learns the deck order or the opponent's hand, yet every card is verifiable at showdown.
|
Package gin is the Gin Rummy service: a two-player card game dealt with a dealerless "mental poker" shuffle (internal/mentalpoker) so neither player nor the blind relay ever learns the deck order or the opponent's hand, yet every card is verifiable at showdown. |
|
service/gomoku
Gomoku (five-in-a-row) rules — pure logic, no protocol.
|
Gomoku (five-in-a-row) rules — pure logic, no protocol. |
|
service/gomokup
Package gomokup is "Gomoku Party": five-in-a-row for 2–4 players on one shared board with rotating turns.
|
Package gomokup is "Gomoku Party": five-in-a-row for 2–4 players on one shared board with rotating turns. |
|
service/hex
Hex (the connection game) rules — pure logic, no protocol.
|
Hex (the connection game) rules — pure logic, no protocol. |
|
service/reversi
The reversi service: game.Table lifecycle, on-demand Start, computed passes (never sent), applyAndHash convention.
|
The reversi service: game.Table lifecycle, on-demand Start, computed passes (never sent), applyAndHash convention. |
|
service/weiqi
A capture/liberty-aware 1-ply heuristic bot for the "Hard" seat.
|
A capture/liberty-aware 1-ply heuristic bot for the "Hard" seat. |
|
service/xiangqi
A "Hard" Xiangqi bot: alpha-beta negamax over the engine's own legal-move generation, apply, and check/terminal helpers (engine.go).
|
A "Hard" Xiangqi bot: alpha-beta negamax over the engine's own legal-move generation, apply, and check/terminal helpers (engine.go). |
|
session
Package session is the client-side engine: it dials the relay, runs the create/join handshake, performs the PAKE + group-key exchange, and moves encrypted service envelopes.
|
Package session is the client-side engine: it dials the relay, runs the create/join handshake, performs the PAKE + group-key exchange, and moves encrypted service envelopes. |
|
shipcommit
Package shipcommit implements the Battleship hiding scheme: each player commits to all 100 cells of their board before the first shot, then reveals exactly the cells that get shot.
|
Package shipcommit implements the Battleship hiding scheme: each player commits to all 100 cells of their board before the first shot, then reveals exactly the cells that get shot. |
|
solo
Package solo provides a relay-free, in-memory transport for local "try a game" sessions: N session ends (a host and one or more players) wired to a shared in-memory hub with no WebSocket, PAKE, or crypto.
|
Package solo provides a relay-free, in-memory transport for local "try a game" sessions: N session ends (a host and one or more players) wired to a shared in-memory hub with no WebSocket, PAKE, or crypto. |
|
wire
The inner payload layer: what clients put inside Direct/Broadcast Payload fields.
|
The inner payload layer: what clients put inside Direct/Broadcast Payload fields. |
|
Package web embeds the built browser client.
|
Package web embeds the built browser client. |
Click to show internal directories.
Click to hide internal directories.