Skip to content

A TCP and UDP proxy over websockets. Implementing the full Wisp protocol.

License

Notifications You must be signed in to change notification settings

FoxMoss/WispServerCpp

Repository files navigation

WispServerC++

A C++ project implementing the wisp protocol, a minimal overhead websocket proxy. It is curently the fastest implementation according to wispmark.

This was made to take full advantage of the low overhead of the protocol by reducing memory usage compared to the author's implementation in python. The repo also has UDP support and better error error handling then the original implementation.

See Also

Create a PR if you want you're wisp related product here

For node support look at out port of WispServerC++ wisp-server-cpp and the native wisp-server-node.

More info at MercuryWorkshop/wisp-protocol.

Usage

Usage: wispserver [options] <port>
 --packet-ratelimit <limit>      The ammount of packets that can be sent from a single websocket per minute.
 --help                          Shows this help menu.

Install

Requirements:

  • zlib
  • pthreads
  • uWebSockets

To make with debug symbols make with DEBUG set to TRUE make DEBUG="-g -ggdb" Otherwise symbols will be stripped.

The Makefile also needs a obj/ directory.

Implementation Status

  • V1
    • Connect Payload
      • TCP
      • UDP
    • Client Data Payload
    • Server Data Payload
    • Continue Payload
    • Close Payload (only necessary)
      • 0x01 Unknown
      • 0x02 Voluntary Closure (N/A)
      • 0x03 Network Error
      • 0x41 Creation Invalid
      • 0x42 Host Unreachable
      • 0x43 Creation Timeout
      • 0x44 Connection Refused
      • 0x47 Tcp Timeout
      • 0x48 Server Blocked Host
      • 0x49 Server Throttling
      • 0x81 Client Memory Error (N/A)
  • V2
    • Protocol Extensions
      • 0x01 UDP (Supports UDP without proto)
      • 0x02 Password Authentication

Credits

About

A TCP and UDP proxy over websockets. Implementing the full Wisp protocol.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published