├── .envrc ├── .github └── workflows │ ├── buildandtest.yml │ └── lint.yml ├── .gitignore ├── .golangci.yml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── TODO.md ├── agent.go ├── agent_options.go ├── defaults.go ├── endpoint.go ├── endpoint_options.go ├── errors.go ├── events.go ├── events_test.go ├── examples ├── fasthttp │ └── main.go ├── forward │ └── main.go ├── go.mod ├── go.sum ├── http │ └── main.go ├── multiple-endpoints │ └── main.go ├── rpc │ └── main.go ├── tcp │ └── main.go └── traffic-policy │ └── main.go ├── flake.lock ├── flake.nix ├── forwarder.go ├── go.mod ├── go.sum ├── internal ├── integration_tests │ ├── agent_tls_termination_test.go │ ├── endpoint_closing_test.go │ ├── error_code_test.go │ ├── event_handling_test.go │ ├── forward_test.go │ ├── http2_test.go │ ├── listen_http_test.go │ ├── listen_http_url_test.go │ ├── listen_https_test.go │ ├── listen_tcp_test.go │ ├── proxy_proto_test.go │ ├── test_utils.go │ ├── upstream_dialer_test.go │ └── url_pooling_test.go ├── legacy │ ├── VERSION │ ├── config │ │ ├── app_protocol.go │ │ ├── bindings.go │ │ ├── bindings_test.go │ │ ├── common.go │ │ ├── config_test.go │ │ ├── description.go │ │ ├── forwards_to.go │ │ ├── http.go │ │ ├── http_handler.go │ │ ├── http_test.go │ │ ├── metadata.go │ │ ├── policy.go │ │ ├── pooling_enabled.go │ │ ├── proxy_proto.go │ │ ├── proxy_proto_test.go │ │ ├── scheme.go │ │ ├── scheme_test.go │ │ ├── tcp.go │ │ ├── tcp_test.go │ │ ├── testdata │ │ │ └── ngrok.ca.crt │ │ ├── tls.go │ │ ├── tls_test.go │ │ ├── tunnel_config.go │ │ └── url.go │ ├── errors.go │ ├── errors_test.go │ ├── logging.go │ ├── ngrok.ca.crt │ ├── online_test.go │ ├── session.go │ ├── session_test.go │ ├── tunnel.go │ └── tunnel_config.go ├── pb │ ├── middleware.pb.go │ └── middleware.proto ├── testutil │ └── sync.go └── tunnel │ ├── client │ ├── raw_session.go │ ├── raw_session_test.go │ ├── reconnecting.go │ ├── session.go │ ├── shutdown.go │ └── tunnel.go │ ├── label │ └── label.go │ ├── netx │ └── logged_conn.go │ └── proto │ ├── msg.go │ ├── msg_test.go │ └── unpack.go ├── listener.go ├── listener_test.go ├── rpc └── request.go ├── rpc_handler.go ├── scripts └── Makefile ├── session.go └── upstream.go /.envrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/.envrc -------------------------------------------------------------------------------- /.github/workflows/buildandtest.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/.github/workflows/buildandtest.yml -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/.github/workflows/lint.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/.gitignore -------------------------------------------------------------------------------- /.golangci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/.golangci.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/README.md -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/TODO.md -------------------------------------------------------------------------------- /agent.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/agent.go -------------------------------------------------------------------------------- /agent_options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/agent_options.go -------------------------------------------------------------------------------- /defaults.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/defaults.go -------------------------------------------------------------------------------- /endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/endpoint.go -------------------------------------------------------------------------------- /endpoint_options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/endpoint_options.go -------------------------------------------------------------------------------- /errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/errors.go -------------------------------------------------------------------------------- /events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/events.go -------------------------------------------------------------------------------- /events_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/events_test.go -------------------------------------------------------------------------------- /examples/fasthttp/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/fasthttp/main.go -------------------------------------------------------------------------------- /examples/forward/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/forward/main.go -------------------------------------------------------------------------------- /examples/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/go.mod -------------------------------------------------------------------------------- /examples/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/go.sum -------------------------------------------------------------------------------- /examples/http/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/http/main.go -------------------------------------------------------------------------------- /examples/multiple-endpoints/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/multiple-endpoints/main.go -------------------------------------------------------------------------------- /examples/rpc/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/rpc/main.go -------------------------------------------------------------------------------- /examples/tcp/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/tcp/main.go -------------------------------------------------------------------------------- /examples/traffic-policy/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/examples/traffic-policy/main.go -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/flake.lock -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/flake.nix -------------------------------------------------------------------------------- /forwarder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/forwarder.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/go.sum -------------------------------------------------------------------------------- /internal/integration_tests/agent_tls_termination_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/agent_tls_termination_test.go -------------------------------------------------------------------------------- /internal/integration_tests/endpoint_closing_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/endpoint_closing_test.go -------------------------------------------------------------------------------- /internal/integration_tests/error_code_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/error_code_test.go -------------------------------------------------------------------------------- /internal/integration_tests/event_handling_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/event_handling_test.go -------------------------------------------------------------------------------- /internal/integration_tests/forward_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/forward_test.go -------------------------------------------------------------------------------- /internal/integration_tests/http2_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/http2_test.go -------------------------------------------------------------------------------- /internal/integration_tests/listen_http_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/listen_http_test.go -------------------------------------------------------------------------------- /internal/integration_tests/listen_http_url_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/listen_http_url_test.go -------------------------------------------------------------------------------- /internal/integration_tests/listen_https_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/listen_https_test.go -------------------------------------------------------------------------------- /internal/integration_tests/listen_tcp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/listen_tcp_test.go -------------------------------------------------------------------------------- /internal/integration_tests/proxy_proto_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/proxy_proto_test.go -------------------------------------------------------------------------------- /internal/integration_tests/test_utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/test_utils.go -------------------------------------------------------------------------------- /internal/integration_tests/upstream_dialer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/upstream_dialer_test.go -------------------------------------------------------------------------------- /internal/integration_tests/url_pooling_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/integration_tests/url_pooling_test.go -------------------------------------------------------------------------------- /internal/legacy/VERSION: -------------------------------------------------------------------------------- 1 | 2.1.0 2 | -------------------------------------------------------------------------------- /internal/legacy/config/app_protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/app_protocol.go -------------------------------------------------------------------------------- /internal/legacy/config/bindings.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/bindings.go -------------------------------------------------------------------------------- /internal/legacy/config/bindings_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/bindings_test.go -------------------------------------------------------------------------------- /internal/legacy/config/common.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/common.go -------------------------------------------------------------------------------- /internal/legacy/config/config_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/config_test.go -------------------------------------------------------------------------------- /internal/legacy/config/description.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/description.go -------------------------------------------------------------------------------- /internal/legacy/config/forwards_to.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/forwards_to.go -------------------------------------------------------------------------------- /internal/legacy/config/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/http.go -------------------------------------------------------------------------------- /internal/legacy/config/http_handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/http_handler.go -------------------------------------------------------------------------------- /internal/legacy/config/http_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/http_test.go -------------------------------------------------------------------------------- /internal/legacy/config/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/metadata.go -------------------------------------------------------------------------------- /internal/legacy/config/policy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/policy.go -------------------------------------------------------------------------------- /internal/legacy/config/pooling_enabled.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/pooling_enabled.go -------------------------------------------------------------------------------- /internal/legacy/config/proxy_proto.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/proxy_proto.go -------------------------------------------------------------------------------- /internal/legacy/config/proxy_proto_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/proxy_proto_test.go -------------------------------------------------------------------------------- /internal/legacy/config/scheme.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/scheme.go -------------------------------------------------------------------------------- /internal/legacy/config/scheme_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/scheme_test.go -------------------------------------------------------------------------------- /internal/legacy/config/tcp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/tcp.go -------------------------------------------------------------------------------- /internal/legacy/config/tcp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/tcp_test.go -------------------------------------------------------------------------------- /internal/legacy/config/testdata/ngrok.ca.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/testdata/ngrok.ca.crt -------------------------------------------------------------------------------- /internal/legacy/config/tls.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/tls.go -------------------------------------------------------------------------------- /internal/legacy/config/tls_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/tls_test.go -------------------------------------------------------------------------------- /internal/legacy/config/tunnel_config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/tunnel_config.go -------------------------------------------------------------------------------- /internal/legacy/config/url.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/config/url.go -------------------------------------------------------------------------------- /internal/legacy/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/errors.go -------------------------------------------------------------------------------- /internal/legacy/errors_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/errors_test.go -------------------------------------------------------------------------------- /internal/legacy/logging.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/logging.go -------------------------------------------------------------------------------- /internal/legacy/ngrok.ca.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/ngrok.ca.crt -------------------------------------------------------------------------------- /internal/legacy/online_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/online_test.go -------------------------------------------------------------------------------- /internal/legacy/session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/session.go -------------------------------------------------------------------------------- /internal/legacy/session_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/session_test.go -------------------------------------------------------------------------------- /internal/legacy/tunnel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/tunnel.go -------------------------------------------------------------------------------- /internal/legacy/tunnel_config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/legacy/tunnel_config.go -------------------------------------------------------------------------------- /internal/pb/middleware.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/pb/middleware.pb.go -------------------------------------------------------------------------------- /internal/pb/middleware.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/pb/middleware.proto -------------------------------------------------------------------------------- /internal/testutil/sync.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/testutil/sync.go -------------------------------------------------------------------------------- /internal/tunnel/client/raw_session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/client/raw_session.go -------------------------------------------------------------------------------- /internal/tunnel/client/raw_session_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/client/raw_session_test.go -------------------------------------------------------------------------------- /internal/tunnel/client/reconnecting.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/client/reconnecting.go -------------------------------------------------------------------------------- /internal/tunnel/client/session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/client/session.go -------------------------------------------------------------------------------- /internal/tunnel/client/shutdown.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/client/shutdown.go -------------------------------------------------------------------------------- /internal/tunnel/client/tunnel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/client/tunnel.go -------------------------------------------------------------------------------- /internal/tunnel/label/label.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/label/label.go -------------------------------------------------------------------------------- /internal/tunnel/netx/logged_conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/netx/logged_conn.go -------------------------------------------------------------------------------- /internal/tunnel/proto/msg.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/proto/msg.go -------------------------------------------------------------------------------- /internal/tunnel/proto/msg_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/proto/msg_test.go -------------------------------------------------------------------------------- /internal/tunnel/proto/unpack.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/internal/tunnel/proto/unpack.go -------------------------------------------------------------------------------- /listener.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/listener.go -------------------------------------------------------------------------------- /listener_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/listener_test.go -------------------------------------------------------------------------------- /rpc/request.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/rpc/request.go -------------------------------------------------------------------------------- /rpc_handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/rpc_handler.go -------------------------------------------------------------------------------- /scripts/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/scripts/Makefile -------------------------------------------------------------------------------- /session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/session.go -------------------------------------------------------------------------------- /upstream.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrok/ngrok-go/HEAD/upstream.go --------------------------------------------------------------------------------