Files
drip/README.md
Gouryella 89f67ab145 feat(client): Add bandwidth limit function support
- 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
2026-02-15 02:39:50 +08:00

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">
[![Go](https://img.shields.io/badge/Go-1.21+-00ADD8?style=flat&logo=go)](https://golang.org/)
[![License](https://img.shields.io/badge/License-BSD--3--Clause-blue.svg)](LICENSE)
[![TLS](https://img.shields.io/badge/TLS-1.3-green.svg)](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