waste-go

A modern reimagining of WASTE โ€” encrypted P2P chat and file sharing over WebRTC, with no server in the data path.

Sub-site/waste โ†’ Repoexplewd/waste-go โ†’

Case study: Case study: waste-go

Highlights

  • True peer-to-peer: WebRTC DataChannels, server sees presence only โ€” never content, IPs, or network names
  • Three client modes: Go daemon, browser-only (libsodium-WASM), and native desktop app (Wails)
  • Ed25519 identity with DTLS fingerprint binding โ€” provably connected to the right person, not just the right server
  • Forward-secret signaling (YAW/2.1): ephemeral X25519 per session, graceful fallback to 2.0
  • File transfer with SHA-256 integrity and mid-transfer resume
  • Cryptographically signed invite chains and invite-only network enforcement

A modern reimagination of WASTE โ€” the 2003 encrypted P2P tool that got briefly famous, got pulled, and then quietly faded.

Same idea: small trusted groups, encrypted, no company in the middle. New foundations: Go, WebRTC, Ed25519, and a formally specified wire protocol (YAW/2).

The signaling server (the anchor) helps peers find each other but never carries their data. All traffic flows directly between peers over WebRTC DataChannels โ€” DTLS-encrypted, peer-to-peer, with the anchor dropping out of the picture once the connection is established.

Runs three ways: as a Go daemon, entirely in the browser via libsodium compiled to WebAssembly, or as a self-contained desktop app. All three speak the same IPC protocol, so the frontend code is identical across modes.