Commit Graph

22 Commits

Author SHA1 Message Date
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
zhiqing
307cf8e6cc feat: Add Bearer Token authentication support and optimize code structure
- Add Bearer Token authentication, supporting tunnel access control via the --auth-bearer parameter
- Refactor large modules into smaller, more focused components to improve code maintainability
- Update dependency versions, including golang.org/x/crypto, golang.org/x/net, etc.
- Add SilenceUsage and SilenceErrors configuration for all CLI commands
- Modify connector configuration structure to support the new authentication method
- Update recent change log in README with new feature descriptions

BREAKING CHANGE: Authentication via Bearer Token is now supported, requiring the new --auth-bearer parameter
2026-01-29 14:40:53 +08:00
Gouryella
761c170642 docs(readme): Update document links and navigation structure 2026-01-16 12:34:47 +08:00
Gouryella
00a3ced765 docs: Update document link address 2026-01-16 12:23:39 +08:00
Gouryella
bc2254bd73 docs(readme): Update document link text and URL 2026-01-15 17:34:42 +08:00
Gouryella
5459d952be feat(server): Optimize configuration priority processing logic 2026-01-15 17:32:08 +08:00
Gouryella
37d1bfc089 feat(client): Support predefined tunnel configuration and management commands
Added predefined tunnel functionality, allowing users to define multiple tunnels in the configuration file and start them by name, including the following improvements:
- Added --all flag to start all configured tunnels
- Added parameterless start command to list available tunnels
- Support configuration of multiple tunnel types (http, https, tcp)
- Support advanced configurations such as subdomains, transport protocols, and IP allowlists

refactor(deployments): Refactor Docker deployment configuration

Removed old Dockerfile and Compose configurations, added new deployment files:
- Removed .env.example and old Docker build files
- Added Caddy reverse proxy configuration file
- Added two deployment modes: standard and Caddy reverse proxy
- Added detailed server configuration example files

docs: Update documentation to include tunnel configuration and deployment guide

Updated Chinese and English README documents:
- Added usage instructions and configuration examples for predefined tunnels
- Expanded server deployment section to include direct TLS and reverse proxy modes
- Added server configuration reference table with detailed configuration item descriptions
- Added specific configuration methods for Caddy and Nginx reverse proxies
2026-01-15 17:18:27 +08:00
Gouryella
4b2dcc0ee1 feat(workflow): Use GoReleaser to simplify the release process 2026-01-14 13:30:25 +08:00
Gouryella
85a0f44e44 feat: Add IP access control functionality
- Implement IP whitelist/blacklist access control mechanism
- Add --allow-ip and --deny-ip command-line arguments to configure IP access rules
- Support CIDR format for IP range configuration
- Enable IP access control in HTTP, HTTPS, and TCP tunnels
- Add IP access check logic to server-side proxy handling
- Update documentation to explain how to use IP access control
2026-01-11 14:22:41 +08:00
Gouryella
8c8a848320 docs(README): Removed v0.5.0 update content and added an acknowledgments section. 2026-01-04 11:31:33 +08:00
Gouryella
9e2bcafa98 docs (nginx): Add proxy header configuration to support WebSocket upgrades 2025-12-22 14:24:46 +08:00
Gouryella
b92015aace docs (readme): Updated version feature descriptions to v0.5.0 2025-12-13 18:10:37 +08:00
Gouryella
1a5ffce15c refactor(buffer): Optimizes TCP and HTTP streaming request processing using a buffer pool.
Replaces the fixed-size buffers in `FrameHandler` and `Handler` with dynamic buffers obtained from the buffer pool,

to reduce memory allocation and improve performance. Also updates the logo path in the README to match the new resource directory structure.
2025-12-08 12:53:56 +08:00
Gouryella
b5629a1cf7 docs(readme): Updated badge display to use div tags
Replaced the original `<p>` tags with `<div>` tags for better alignment and layout control,

while maintaining content centering. This change applies to the README.md and README_CN.md files.
2025-12-06 23:59:58 +08:00
Gouryella
dface89e78 Documents (Readme): Updated installation instructions and merged client and server installation scripts
- Changed the previous separate client and server installation method to a unified entry point, distinguished by the `--client` or `--server` parameters.
- Provided examples of non-interactive installation commands.

- Synchronized the installation guidance in the English and Chinese README documents.

- Removed the separate `install-server.sh` script content display, as it has been integrated into the new `install.sh` script.
2025-12-06 22:18:35 +08:00
Gouryella
522c092d8d feat(install-scripts): Enhanced installation script functionality and added uninstallation support
- Added panel printing functions (print_panel, print_subheader) to install-server.sh and install.sh,

for improved interface display.

- Introduced the ensure_command_access function to automatically link the drip command to system paths (e.g., /usr/local/bin),

improving command availability.

- Added complete uninstallation logic: Added uninstall.sh script, supporting client-side, server-side, or both uninstallation.

- install.sh supports triggering the uninstallation process with the --uninstall parameter and enhanced PATH cleanup mechanism.

- Unified multilingual prompts and optimized user experience.
2025-12-06 13:27:34 +08:00
Gouryella
eee2d570f1 Add TLSv1.3 support to proxy configuration 2025-12-06 03:25:16 +08:00
Gouryella
aead68bb62 feat: Add HTTP streaming, compression support, and Docker deployment
enhancements

  - Add adaptive HTTP response handling with automatic streaming for large
  responses (>1MB)
  - Implement zero-copy streaming using buffer pools for better performance
  - Add compression module for reduced bandwidth usage
  - Add GitHub Container Registry workflow for automated Docker builds
  - Add production-optimized Dockerfile and docker-compose configuration
  - Simplify background mode with -d flag and improved daemon management
  - Update documentation with new command syntax and deployment guides
  - Clean up unused code and improve error handling
  - Fix lipgloss style usage (remove unnecessary .Copy() calls)
2025-12-05 22:09:07 +08:00
Gouryella
bb5ed1739e docs(readme): Updated the structure and content of the English and Chinese README documents
- Unified logo size and optimized layout using HTML tags

- Replaced headings with semantic tags `<h1>` and `<h3>`

- Reorganized the document structure to enhance readability and visual appeal

- Optimized Chinese descriptions for a more natural and fluent style

- Adjusted the installation, usage instructions, and architecture diagram descriptions

- Standardized the display of command-line options and parameters
2025-12-03 11:09:06 +08:00
Gouryella
dd54e79ad7 perf (client): Refactored the command-line interface and enhanced user experience
- Optimized terminal output style and configuration management using libraries such as `lipgloss` and `go-json`

- Introduced the `ui` package to unify the display logic of colors, tables, and prompts

- Updated the README document structure and installation script links to improve readability and internationalization support

- Improved the interaction flow and log display effects of the daemon startup and attach commands

- Fixed some command parameter parsing issues, improving program robustness and user onboarding experience
2025-12-03 10:18:52 +08:00
Gouryella
e0e33c3323 feat(install-scripts): Updated installation scripts to fetch the latest version from GitHub and fixed download links.
Updated client and server installation scripts to automatically fetch the latest release via the GitHub API and corrected binary download addresses. Removed the old "latest" version logic to ensure explicit version tags are always used for downloads.

fix(readme): Fixed installation commands and license information in the README.

Corrected the installation script link pointing to an incorrect URL in the README to the correct path raw.githubusercontent.com, and updated the open-source license information used by the project from MIT to BSD 3-Clause.

ci(release): Added an automated GitHub Actions release workflow.

Added a new CI workflow configuration file to trigger the build process when a tag is pushed. This workflow compiles binaries for multiple platforms, generates checksums, and creates a GitHub Release with attachments. Supports different architectures including Linux, macOS, and Windows.
2025-12-02 16:40:53 +08:00
Gouryella
07eea862d5 feat(init): Initializes the project's basic structure and configuration files. 2025-12-02 16:12:18 +08:00