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`](https://github.com/single9/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`](https://crates.io/crates/erbridge) crate, so depending on this one
pulls in neither.

See the [project README](https://github.com/single9/erbridge#readme) for usage
and an embedding example, and `docs/multi-tenant/spec.md` for the multi-tenant
design.

MIT licensed.