Wisp Protocol
May 4, 2026 ยท View on GitHub
Wisp is designed to be a low-overhead, easy to implement protocol for proxying multiple TCP and UDP sockets over a single websocket connection.
For the protocol specifications, see protocol.md.
Major Versions:
There are two major versions of Wisp:
- Wisp V1 - The simpler version which is easier to implement, but without advanced features such as authentication.
- Wisp V2 - Adds a handshake step which allows for adding protocol extensions, password and key authentication, MOTD messages, and more.
Server Implementations:
- wisp-server-python - by @ading2210
- wisp-js/server - by @ading2210
- epoxy-server (Rust) - by @r58Playz
- Woeful (C++) - by @FoxMoss
- mrrowisp (Go) - by @soap-phia
Client Implementations:
- wisp-js/client - by @ading2210
- wisp-mux (Rust) - by @r58Playz
- pixie (Go) - by @soap-phia
Software Using Wisp:
- WispMark - A benchmarking tool for Wisp protocol implementations.
- libcurl.js - A port of libcurl to WebAssembly, for proxying HTTPS requests from the browser with full TLS encryption
- epoxy-tls - An encrypted proxy for browser javascript, written in Rust.
- Mittens - Programmable middleware that works with any Wisp implementation.
- Ultraviolet - A sophisticated web proxy, which uses either libcurl.js or epoxy.
- Scramjet - An experimental web proxy that aims to be the successor to Ultraviolet.
- Whisper - A client for Wisp that exposes the connection over a TUN device.
- v86 - x86 PC emulator and x86-to-wasm JIT, running in the browser
- Puter - An advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible
- browser.js - A browser environment for the web, based on Scramjet.
- Wispcraft - A mod for Eaglercraft, letting you play on online Minecraft Java Edition servers in your browser.
Copyright:
This repository is licensed under the Creative Commons Attribution 4.0 International license. The implementations listed above use different licenses.
The Wisp protocol specifications were written by @ading2210.
