go-ktls 将 Go HTTPS 监听器中的 TLS 记录加密从用户空间卸载到 Linux 内核,并在卸载不可用时透明地回退到用户空间 TLS。

Stars

9

7 天增长

暂无数据

Fork 数

0

开放 Issue

1

开源协议

MIT

最近更新

2026-07-28

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它通过避免将密文写回 DRAM 显著降低内存流量和 CPU 开销,并在实时视频边缘工作负载上实现了 130 Gbit/s 的生产环境验证。

适合谁使用

  • 构建高吞吐 HTTPS 服务的 Go 开发者
  • 部署 TLS 终止代理或 CDN 节点的系统管理员
  • 优化内存带宽和 CPU 使用率的性能工程师
  • 使用内核 kTLS 和网卡内联 TLS 卸载的工程师

典型使用场景

  • 实时视频流传输(DASH、HLS)通过 HTTPS
  • 高性能 TLS 终止用于 Web 服务器
  • 数据中心 TLS 网关中减少 CPU 和 DRAM 负载
  • 通过 TLS 套接字使用 sendfile(2) 提供文件服务

项目优势

  • 不支持的场景透明回退到用户空间 TLS(无连接中断)
  • 生产环境中测试达到 130 Gbit/s 和 1.9 万并发流,每出口字节 DRAM 字节从 5.4x 降至 2.2x
  • 支持 TLS 1.3 和 TLS 1.2 AES-GCM,TLS 1.3 使用软件 kTLS 实现 sendfile/拷贝节省
  • 设置开销极低(握手和每连接密钥捕获),无按字节的用户空间开销

使用前须知

  • 仅 Linux 平台,需内核 6.14+;硬件内联卸载需要特定网卡(ConnectX-6 Dx/7)和固件
  • 部分场景回退到用户空间 TLS:HTTP/2、客户端证书、TLS 1.1 及以下、TLS 1.2 CBC/ChaCha20
  • 不减少每连接的内核状态,因此 L3 缓存设置的连接数上限不变

README 快速开始

Usage

项目描述

Kernel TLS offload for a Go HTTPS listener.

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

programmersd21
精选
programmersd21 GitHub avatar

flow

flow is a minimalist terminal dashboard that displays real-time network throughput with smooth animations, multiple responsive modes, and zero configuration.

开发者工具CLI 与终端
277
0xNikoDev
0xNikoDev GitHub avatar

robinhood-ai-dev-sniper

A commercial Go trading panel for Robinhood Chain that snipes token launches at the L1-flip boundary using pre-signed relay volleys, plus auto-sniper, trailing exit, and Uniswap V3 trading.

Go
133
nethical6
精选
nethical6 GitHub avatar

conversation-steganography

A tool that hides encrypted secret messages inside innocent-looking AI-generated chat text for private communication over any messaging platform.

Go
1,149