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
派生數799
提交數633
已啟用問題?
問題數841
打開的問題數58
拉請求數336
打開的拉請求數9
關閉的拉請求數171
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?