A Fast UDP Proxy written in Golang
Switch branches/tags
Nothing to show
Clone or download
Latest commit b659e3a Jan 20, 2017

README.md

UDPX

Build Status Coverage Status Code Climate Go Report Card

A Super Fast UDP Proxy that works as a NAT (has support to multiple clients) written in Golang.

About

Features

  • Super Fast
  • Can Handle Multiple Clients
  • Act as a NAT
  • Dynamic upstreams
  • Multiple upstreams

Dependencies

  • GO 1.7

Compiling

make build

Usage

$ ./bin/udpx --help
A fast UDP proxy that support multiple clients and dynamic upstreams

Usage:
  udpx [command]

Available Commands:
  start       starts UDP proxy
  version     Print the version number of UDPX

Use "udpx [command] --help" for more information about a command.

TODO

  • Add config
  • Add command
  • Add tests infrastructure
  • Travis CI and Code Coverage
  • Support to multiple upstreams
  • Dynamically resolve upstreams
  • Dynamically add proxies
  • Dynamically remove proxies
  • Resolve new upstream addr if it changes
  • Make timeout logic faster by making less updates
  • Zap has a leak, maybe use another logger
  • Dynamically added proxies must be shared my multiple udpx instances
  • Can persist upstreams
  • Print statistics of messages sent and clients active /sec
  • Persist proxy state between reboots?
  • Docs
  • Example
  • Performance tests
  • Add more tests
  • Limit clients?
  • Docker