WebBou is a minimal custom binary protocol stack with:
- Go server
- Rust client
- one production transport:
TCP + TLS - one production port:
8443 - one wire format version:
v1 - one handshake:
HELLO -> HELLO_ACK
The repo also contains older experimental work, but the production path is the minimal contract above.
server/webbou/: Go server libraryserver/main_webbou.go: production server binaryclient/src/webbou/: Rust client libraryprotocol/SPEC.md: versioned wire specprotocol/testdata/: shared golden fixturesexperimental/: research and legacy entrypoints
- Build the server and client.
make all- Generate a local certificate for development.
make dev-cert- Start the server.
make run-server- Start the client in a second terminal.
make run-clientThe Rust client currently accepts the local self-signed certificate so the development flow works without extra trust setup.
On Linux and macOS you can still generate the same files with openssl.
Supported today:
- fixed 16-byte frame header
- frame version
0x01 HELLO,HELLO_ACK,DATA,PING,PONG,STREAM_OPEN,STREAM_CLOSE- optional payload compression and payload encryption
- shared golden serialization tests between Go and Rust
Not part of the production contract yet:
- QUIC transport
- multi-path
- certificate pinning
- post-quantum key exchange
- 0-RTT resume
The CI path is intentionally small and should stay green:
cd server && go build ./... && go test ./...
cd client && cargo build && cargo testMore detail is in docs/QUICKSTART.md.