u/Achromase

▲ 5 r/opensource+2 crossposts

Greetings!

I'd like to introduce v0.3.1 of ProxyGW, an L4 DNAT-based routing application built entirely in Go for linux that combines CoreDNS's plugin model with HAProxy's highly customizable warm-and-forward routing capabilities.

https://github.com/UselessMnemonic/proxygw
https://github.com/UselessMnemonic/proxygw-aws
https://github.com/UselessMnemonic/proxygw-minecraft
https://github.com/UselessMnemonic/proxygw-valheim

ProxyGW creates an engine around a simple plugin system. Plugins provide resource management capabilities in the form of Target Handlers and Frontend Handlers, while state is managed by the engine.

Target Handlers “warm” backend services on demand, while Frontend Handlers intercept traffic on behalf of the Target. Frontends can classify traffic and decide when to warm the target. All the while, the engine leverages built-in kernel routing features to switch routes towards the Target.

Current features and amenities include:

  • YAML-based configuration and pre-made schemas
  • Automatic idle-tracking for Targets
  • Per-route configurable flow timeouts
  • Day-one support for both UDP and TCP
  • Built-in static plugins for simple always-on/http/cmd targets
  • External plugins for AWS targets, and Minecraft + Valheim frontends

Though I enjoy my lab, I only have 4 cores, 6GB, and a dream. Sometimes I need that c8g.xlarge, just for a few hours. With ProxyGW, I can have huge VMs sitting in the cloud knowing my wallet is safe because they will be automatically managed for on-demand use. ProxyGW I hope will fit hybrid labs.

u/Achromase — 12 days ago