用 Rust 重写 kcptun,完全线上兼容 kcptun-go

11 小时 53 分钟前
 sean2020

🚀 kcptun-rs: 基于 Rust 重构的 KCP 加速隧道

这是一个使用 Rust 完整重构的 kcptun ( https://github.com/xtaci/kcptun) 兼容实现。不仅做到完全兼容原版 Go 协议与算法,同时在二进制体积控制与系统底层 IO 上优化。

🔗 项目地址: https://github.com/xsean2020/kcptun-rs


✨ 核心亮点

  1. 100% 协议与算法双向兼容( Drop-in Replacement )
  1. 极致的二进制体积控制
  1. 深入底层的零拷贝与批量 IO

🛠️ 跨语言完全兼容踩坑记录

在做到完全无缝兼容 Go 版的过程中,我也解决了一系列隐蔽的跨语言协议细节:

  1. Snappy 校验和差异:Go 与 Rust 生态中 Snappy 对 CRC32 / CRC32C 的默认处理存在细微差异(早期 Go 端会静默吃掉数据),经过逐层报文分析后实现了严格对齐。
  2. Twofish 算法逻辑对齐:修复了 256-bit 密钥下缺失第 5 层 S-box 的问题,确保密文输出与 Go x/crypto 算出的结果完全一致。
  3. Blowfish 密钥调度优化:修正了早期版本中在处理每块加密时重复调度密钥的问题。

欢迎有嵌入式加速需求、路由器部署场景或对 Rust 网络数据平面感兴趣的朋友前去体验、提 Issue 或点个 ⭐ Star !

👉 https://github.com/xsean2020/kcptun-rs

1348 次点击
所在节点    程序员
11 条回复
Tsing2
11 小时 44 分钟前
在全民 AI 浮躁的时代,能沉下心来搞基础建设的课题,实属难得
kongkx
10 小时 48 分钟前
kcptun 不是已经 404 了吗
RobinHuuu
10 小时 43 分钟前
UDP 在翻墙上面用处真不大
HeyWeGo
10 小时 34 分钟前
年初的时候笔记本想下载 kcp 套着过墙来着,发现 404 了,真是及时雨。感谢
PyCode
9 小时 24 分钟前
可以分享下重写的开发过程吗?对这个感兴趣
sean2020
9 小时 3 分钟前
主要是 ai 移植,设置目标,核心在于验收,让 ai 不停 loop
dxatgp02
6 小时 23 分钟前
趁楼主没有拉库跑路马上 fork 一份,打游戏没有这感觉枪都在抖。
dxatgp02
5 小时 57 分钟前
cargo build -r
启动报错
Error: invalid value: integer `-1`, expected u64 at line 22 column 21
linux-arm64 架构
服务端还是 g ,客户端用 rs
sean2020
5 小时 30 分钟前
@dxatgp02 make linux
sean2020
5 小时 29 分钟前
@dxatgp02 等下晚点更新一下 linux 下有 bug, arm 和 macos 正常
sean2020
1 小时 54 分钟前
@dxatgp02 非常感谢你的反馈,上面问题已经修复, 为了方便上传了 vendor ,请重新执行 make vendor && make release 编译, 还有啥问题非常欢迎提出

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1230941

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX