README ¶ A chess server where players can match and play with others on their web browser Build Install protoc Install Golang Run make Observability Run jaeger all-in-one to collect traces Run prometheus and scrape /chess/metrics to collect metrics Components Web client compiled from Golang with WebAssembly Frontend gateway which serves static files and proxies calls to a backend server Interchangeable HTTP and WebSocket backend servers communicate with the web client and relay requests/responses to/from the match server via player channels Client agnostic match server orchestrates a match Matching server with the ability to match a player with a remote chess engine via an engine client Chess model for pieces, moves, the board, and a game Usage as a package go get github.com/ekotlikoff/gochess/pkg/chessserver GOARCH=wasm GOOS=js go build -o ~/bin/gochessclient.wasm -tags webclient github.com/ekotlikoff/gochess/internal/client/web go chessserver.RunServer() Expand ▾ Collapse ▴ Directories ¶ Show internal Expand all Path Synopsis api cmd gochess internal client/web go test ... go test ... model server/backend/http server/backend/match server/backend/websocket server/frontend pkg chessserver test tools Module Click to show internal directories. Click to hide internal directories.