https://github.com/Talbot3/go-tunnel 最近几天迭代第五代产品,之前可玩度不高,开源这个底层库,给大家玩玩。 go-tunnel: 企业级云原生多协议转发引擎 Go Reference
go-tunnel 是一个专为高并发、低延迟场景设计的跨平台高性能转发库。它不仅对标 Nginx/Envoy 的转发核心,更针对 Go 运行时 进行了极致的底层优化。通过解耦协议层与传输层,go-tunnel 实现了在单一架构下对 TCP 、HTTP/2 、HTTP/3 (QUIC) 的统一调度与平滑切换。
🚀 技术核心与对标 在现代分布式架构中,网络转发的瓶颈往往在于用户态与内核态的上下文切换及内存拷贝。go-tunnel 通过以下设计打破瓶颈:
零拷贝转发 (Zero-Copy): 在 Linux 环境下,深度集成 unix.Splice 系统调用,数据流直接在内核缓冲区移动,绕过用户态内存,性能直逼原生内核转发。 平台差异化驱动: Linux: 利用 Splice/Tee 实现零拷贝。 macOS: 采用 TCP_NOTSENT_LOWAT 优化内核发送队列,大幅降低延迟。 Windows: 针对 IOCP 机制优化大缓冲区设置,提升吞吐上限。 自适应背压控制 (Backpressure): 借鉴 Reactive Streams 思想,内置水位监控,自动协调上下游速率,彻底杜绝因下游阻塞导致的服务端内存溢出( OOM )。 原生 HTTP/3 支持: 基于 quic-go 深度定制,支持 0-RTT 连接建立,在弱网环境下性能远超传统 TCP 。 🛠 核心应用场景 高性能边缘网关: 作为微服务入口,处理海量 TLS 卸载与协议转换(如 H3 入,TCP 出)。 跨云/内网穿透: 配合 ACME 自动证书管理,快速构建安全、高性能的加密隧道。 流媒体/大数据分发: 利用 HighThroughput 预设 与零拷贝技术,支持 10Gbps+ 的高带宽文件或视频流传输。 混合协议代理: 单个进程内同时管理多种协议,简化运维复杂度。