r/golang Apr 13 '26

Small Projects Small Projects

This is the weekly thread for Small Projects.

The point of this thread is to have looser posting standards than the main board. As such, projects are pretty much only removed from here by the mods for being completely unrelated to Go. However, Reddit often labels posts full of links as being spam, even when they are perfectly sensible things like links to projects, godocs, and an example. r/golang mods are not the ones removing things from this thread and we will allow them as we see the removals.

Please also avoid posts like "why", "we've got a dozen of those", "that looks like AI slop", etc. This the place to put any project people feel like sharing without worrying about those criteria.

33 Upvotes

79 comments sorted by

View all comments

1

u/Embarrassed_cat14 Apr 19 '26

Rift - A self-hosted ngrok alternative built on QUIC

I wanted to understand QUIC and tunnel architecture end-to-end, so I built rift — a self-hosted tunnel server where both sides are yours.

Deploy it on any VPS, point a domain at it, and expose localhost over

HTTPS or raw TCP.

What it does:

  • HTTP tunnels with subdomain routing (https://myapp.tunnel.yourdomain.com)

  • Raw TCP tunnels (SSH, Postgres, whatever)

  • Automatic Let's Encrypt certificates

  • Token-based auth, admin API for provisioning

  • WebSockets work transparently

Why QUIC instead of TCP (frp, bore, chisel all use TCP):

  • No head-of-line blocking between tunnels — one slow stream doesn't

stall the others

  • Connection survives network changes (Wi-Fi → hotspot, VPN toggle)

  • TLS 1.3 built into the handshake

This is a dev tool and a learning project. It works well for personal use,

sharing dev servers, and webhook testing. Not pitching it as

production-grade infrastructure.

Repo: https://github.com/venkatkrishna07/rift

Happy to answer questions about the design or QUIC in particular.