Play a quick table tennis game with a friend online.
Set up a private encrypted chat between two people via command line.
Learn how peer-to-peer browser connections work with WebRTC.
Study UDP hole punching techniques for direct connections through firewalls.
| ddddddo/pppp | advayc/wrapped | aegrail/aegrail-engine | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | Go | Go | Go |
| Setup difficulty | easy | easy | hard |
| Complexity | 3/5 | 2/5 | 5/5 |
| Audience | developer | general | ops devops |
Figures from each repo's GitHub metadata at analysis time.
The game runs on a static web page with no installation, the CLI chat tool requires Go installed to run.
This repository is a peer-to-peer table tennis game you can play in your browser with another person. The game runs entirely on a static web page hosted on GitHub Pages, so there is nothing to install. You simply visit the provided URL, wait for a second player to join, and start playing. If the game does not start after both players have joined, the README suggests reloading the page a few times because the signaling server may need time to wake up. The connection process works through several stages. First, your browser downloads the game itself as a WebAssembly file. Then, both players connect to a signaling server hosted on Render.com to find each other. Next, each browser contacts a Google STUN server to discover its own public address. Once both players know their addresses, they exchange that information through the signaling server. Finally, a direct peer-to-peer connection forms between the two browsers using WebRTC, and all game data like paddle positions and ball coordinates flows directly between them without passing through any server. The repository also includes a separate command-line chat tool called ppchat. You install it using Go, then run it with a room name. One person acts as host and another joins the same room. It uses the same pattern as the game, connecting through a signaling server and STUN server before establishing a direct encrypted chat channel between the two participants. The README contains technical notes in Japanese about how the networking actually works. It discusses UDP hole punching, which is the technique used to establish direct connections through firewalls. The author also notes that with IPv6, STUN servers become unnecessary since every device can have its own public address, but signaling servers remain needed to help peers find each other. The full README is longer than what was shown.
A peer-to-peer table tennis game you play in your browser with a friend. Also includes a command-line chat tool, both connect two people directly without a central server.
Mainly Go. The stack also includes Go, WebAssembly, WebRTC.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.