kcp-go

带有 FEC 的加密安全、生产级可靠的 golang UDP 库。「A Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC」

Github星跟踪图

GoDoc Powered MIT licensed Build Status Go Report Card Coverage Statusd Sourcegraph

Introduction

kcp-go is a Production-Grade Reliable-UDP library for golang.

This library intents to provide a smooth, resilient, ordered, error-checked and anonymous delivery of streams over UDP packets, it has been battle-tested with opensource project kcptun. Millions of devices(from low-end MIPS routers to high-end servers) have deployed kcp-go powered program in a variety of forms like online games, live broadcasting, file synchronization and network acceleration.

Lastest Release

Features

  1. Designed for Latency-sensitive scenarios.
  2. Cache friendly and Memory optimized design, offers extremely High Performance core.
  3. Handles >5K concurrent connections on a single commodity server.
  4. Compatible with net.Conn and net.Listener, a drop-in replacement for net.TCPConn.
  5. FEC(Forward Error Correction) Support with Reed-Solomon Codes
  6. Packet level encryption support with AES, TEA, 3DES, Blowfish, Cast5, Salsa20, etc. in CFB mode, which generates completely anonymous packet.
  7. Only A fixed number of goroutines will be created for the entire server application, costs in context switch between goroutines have been taken into consideration.
  8. Compatible with skywind3000's C version with various improvements.
  9. Platform-dependent optimizations: sendmmsg and recvmmsg were expoloited for linux.

Documentation

For complete documentation, see the associated Godoc.

Specification

NONCE:
  16bytes cryptographically secure random number, nonce changes for every packet.
  
CRC32:
  CRC-32 checksum of data using the IEEE polynomial
 
FEC TYPE:
  typeData = 0xF1
  typeParity = 0xF2
  
FEC SEQID:
  monotonically increasing in range: [0, (0xffffffff/shardSize) * shardSize - 1]
  
SIZE:
  The size of KCP frame plus 2
+-----------------+

主要指标

概览
名称与所有者react-dropzone/react-dropzone
主编程语言JavaScript
编程语言Go (语言数: 3)
平台Linux, Mac, Raspbian
许可证MIT License
所有者活动
创建于2014-09-27 11:57:09
推送于2025-02-24 10:59:35
最后一次提交2025-02-23 20:17:39
发布数193
最新版本名称v14.3.8 (发布于 )
第一版名称v0.1.0 (发布于 )
用户参与
星数10.8k
关注者数59
派生数795
提交数633
已启用问题?
问题数845
打开的问题数60
拉请求数336
打开的拉请求数9
关闭的拉请求数171
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?