mirror of
https://github.com/Gouryella/drip.git
synced 2026-02-23 21:00:44 +00:00
- Implement client bandwidth limitation parameter --bandwidth, supporting 1M, 1MB, 1G and other formats - Added parseBandwidth function to parse bandwidth values and verify them - Added bandwidth limit option in HTTP, HTTPS, TCP commands - Pass bandwidth configuration to the server through protocol - Add relevant test cases to verify the bandwidth analysis function feat(server): implements server-side bandwidth limitation function - Add bandwidth limitation logic in connection processing, using token bucket algorithm - Implement an effective rate limiting strategy that minimizes the bandwidth of the client and server - Added QoS limiter and restricted connection wrapper - Integrated bandwidth throttling in HTTP and WebSocket proxies - Added global bandwidth limit and burst multiplier settings in server configuration docs: Updated documentation to describe bandwidth limiting functionality - Add 2025-02-14 version update instructions in README and README_CN - Add bandwidth limit function description and usage examples - Provide client and server configuration examples and parameter descriptions
93 lines
2.5 KiB
Markdown
93 lines
2.5 KiB
Markdown
<p align="center">
|
|
<img src="assets/logo.png" alt="Drip Logo" width="200" />
|
|
</p>
|
|
|
|
<h1 align="center">Drip</h1>
|
|
<h3 align="center">Your Tunnel, Your Domain, Anywhere</h3>
|
|
|
|
<p align="center">
|
|
A self-hosted tunneling solution to securely expose your services to the internet.
|
|
</p>
|
|
|
|
<p align="center">
|
|
<a href="https://driptunnel.app/docs">Documentation</a>
|
|
<span> | </span>
|
|
<a href="https://driptunnel.app/docs">中文文档</a>
|
|
</p>
|
|
|
|
<div align="center">
|
|
|
|
[](https://golang.org/)
|
|
[](LICENSE)
|
|
[](https://tools.ietf.org/html/rfc8446)
|
|
|
|
</div>
|
|
|
|
> 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
|
|
|
|
```bash
|
|
# Client: limit to 1MB/s
|
|
drip http 3000 --bandwidth 1M
|
|
```
|
|
|
|
```yaml
|
|
# 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
|
|
bash <(curl -sL https://driptunnel.app/install.sh)
|
|
```
|
|
|
|
### Basic Usage
|
|
|
|
```bash
|
|
# 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](https://driptunnel.app/docs)**
|
|
|
|
- [Installation Guide](https://driptunnel.app/docs/installation)
|
|
- [Basic Usage](https://driptunnel.app/docs/basic-tunnels)
|
|
- [Server Deployment](https://driptunnel.app/docs/direct-mode)
|
|
- [Command Reference](https://driptunnel.app/docs/commands)
|
|
|
|
## License
|
|
|
|
BSD 3-Clause License - see [LICENSE](LICENSE) for details
|