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.
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.
- wisp-server-python - by @ading2210
- wisp-js/server - by @ading2210
- epoxy-server (Rust) - by @r58Playz
- Woeful (C++) - by @FoxMoss
- mrrowisp (Go) - by @soap-phia
- wisp-js/client - by @ading2210
- wisp-mux (Rust) - by @r58Playz
- pixie (Go) - by @soap-phia
- 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.
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.
