v0.9.1-beta — open source

Real-time engine
built for latency
without compromise.

PongProject is a lightweight multiplayer networking library that delivers sub-10ms state synchronisation over gRPC streams. Built for games, collaborative tools, and anything that can't wait.

<8msavg round-trip
64kconcurrent rooms
MITlicense
Core features
// 01

gRPC streaming

Bidirectional streams over HTTP/2. No polling, no WebSocket overhead — just raw stream throughput with backpressure handling built in.

// 02

Delta compression

Only changed state fields are serialised. Protobuf wire format keeps payloads tiny even at 60 state updates per second.

// 03

Room isolation

Each game room runs in an isolated goroutine pool. A crash in one room never affects another. Graceful rejoin included.

// 04

TLS everywhere

mTLS by default between all nodes. Certificates are rotated automatically. Zero-trust topology with no shared secrets.

Quick start
main.go
// Connect to a PongProject room
package main

import (
    "context"
    "log"
    "github.com/pongprj/client-go"
)

func main() {
    client, err := pong.Dial("pongprj.mine.bz", pong.Options{
        Room:  "room-42",
        Token: "eyJhbGci...",
    })
    if err != nil { log.Fatal(err) }
    defer client.Close()

    client.OnState(func(s *pong.State) {
        log.Printf("tick %d: %+v\n", s.Tick, s.Players)
    })
    client.Run(context.Background())
}