erbridge-core 0.3.0

TCP/UDP forwarding and reverse tunnels over Noise, with a multi-tenant SNI-routed server, as a library
Documentation

erbridge-core

The library behind erbridge: TCP/UDP forwarding and reverse (NAT-traversal) tunnels secured with the Noise protocol, plus a multi-tenant server that routes TLS connections to tenants by SNI without decrypting them.

  • reverse::serve / reverse::connect: the two roles of a reverse tunnel, each with a *_with_shutdown variant that stops cleanly on a CancellationToken.
  • reverse::tenant_serve: many tenants on one serve, each with its own token and host, identified by which PSK completes the Noise handshake.
  • reverse::enroll: trade a single-use code for a new tenant's credentials.
  • tenant, tenant_store: tenants, enrollment codes and the TenantStore trait (in-memory and file-backed implementations).
  • stats::Registry: live connections and a structured event stream (Registry::subscribe).

The command-line tool and terminal UI are in the separate erbridge crate, so depending on this one pulls in neither.

See the project README for usage and an embedding example, and docs/multi-tenant/spec.md for the multi-tenant design.

MIT licensed.