MCPcopy Index your code
hub / github.com/Gouryella/drip

github.com/Gouryella/drip @v0.7.10

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.7.10 ↗ · + Follow
767 symbols 2,292 edges 109 files 341 documented · 44% 1 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Drip Logo

Drip

Your Tunnel, Your Domain, Anywhere

A self-hosted tunneling solution to securely expose your services to the internet.

Documentation | 中文文档

Go License TLS

Drip is a quiet, disciplined tunnel. You light a small lamp on your network, and it carries that light outward—through your own infrastructure, on your own terms.

Why Drip?

  • Control your data - No third-party servers, traffic stays between your client and server
  • No limits - Unlimited tunnels, bandwidth, and requests
  • Actually free - Use your own domain, no paid tiers or feature restrictions
  • Open source - BSD 3-Clause License

Recent Changes

2025-02-14

  • Bandwidth Limiting (QoS) - Per-tunnel bandwidth control with token bucket algorithm, server enforces min(client, server) as effective limit
  • Transport Protocol Control - Support independent configuration for service domain and tunnel domain
# Client: limit to 1MB/s
drip http 3000 --bandwidth 1M
# Server: global limit (config.yaml)
bandwidth: 10M
burst_multiplier: 2.5

2025-01-29

  • Bearer Token Authentication - Added bearer token authentication support for tunnel access control
  • Code Optimization - Refactored large modules into smaller, focused components for better maintainability

Quick Start

Install

bash <(curl -sL https://driptunnel.app/install.sh)

Basic Usage

# Configure (first time only)
drip config init

# Expose local HTTP server
drip http 3000

# With custom subdomain
drip http 3000 -n myapp
# → https://myapp.your-domain.com

Documentation

For complete documentation, visit Docs

License

BSD 3-Clause License - see LICENSE for details

Extension points exported contracts — how you extend this code

WSConnectionHandler (Interface)
WSConnectionHandler handles WebSocket tunnel connections [1 implementers]
internal/server/proxy/handler.go
TunnelClient (Interface)
(no doc) [1 implementers]
internal/client/tcp/connector.go
MetricsCollector (Interface)
(no doc) [1 implementers]
internal/shared/recovery/middleware.go
LatencyCallback (FuncType)
(no doc)
internal/client/tcp/connector.go
Alerter (Interface)
(no doc)
internal/shared/recovery/metrics.go

Core symbols most depended-on inside this repo

Close
called by 118
internal/client/tcp/connector.go
String
called by 94
internal/shared/protocol/frame.go
Render
called by 51
internal/shared/ui/table.go
Muted
called by 35
internal/shared/ui/styles.go
Header
called by 25
internal/server/tcp/http_request_handler.go
SetReadDeadline
called by 21
internal/shared/netutil/pipe.go
KeyValue
called by 19
internal/shared/ui/styles.go
Cyan
called by 18
internal/shared/ui/styles.go

Shape

Method 342
Function 321
Struct 89
Interface 8
TypeAlias 6
FuncType 1

Languages

Go100%

Modules by API surface

internal/server/tunnel/connection.go30 symbols
internal/server/proxy/auth_handler.go23 symbols
internal/server/tcp/connection_group.go21 symbols
internal/server/proxy/handler.go21 symbols
internal/shared/protocol/writer.go20 symbols
internal/client/cli/daemon.go19 symbols
internal/shared/stats/stats.go18 symbols
internal/server/tcp/connection.go18 symbols
internal/server/tunnel/manager.go16 symbols
internal/server/tcp/proxy.go15 symbols
internal/client/tcp/pool_session.go15 symbols
internal/client/tcp/pool_client.go15 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add drip \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact