etunnel 1.0.0
etunnel: ^1.0.0 copied to clipboard
Expose a local service through an etunnel reverse-tunnel server with one line of code.
etunnel for Dart #
dart:io only, zero dependencies.
Zero registration: every SDK client speaks the same tiny wire protocol
(PROTOCOL.md) against any etunnel server
(default wss://t.ggcode.uk/tunnel).
Install #
dart pub add etunnel
Requires Dart ^3.0.
CLI #
dart run etunnel.dart 3000
Prints TUNNEL_URL: https://<subdomain>.t.ggcode.uk — that URL now routes to
your local service. Ctrl-C closes the tunnel.
Embed #
See the header of the source file for the embed example.
Environment variables #
| Variable | Meaning | Default |
|---|---|---|
ETUNNEL_SERVER |
tunnel server WebSocket URL | wss://t.ggcode.uk/tunnel |
ETUNNEL_LOCAL |
local port or host:port (or 1st CLI arg) |
3000 |
ETUNNEL_TOKEN |
paid-plan API key (optional) | - |
ETUNNEL_SUBDOMAIN |
custom subdomain (paid plans) | random |
License #
MIT — see LICENSE. Buffer-based protocol client: request and response bodies are buffered per stream (fine for webhooks/dashboards/demos; use the Go SDK for streaming and WebSocket pass-through).