Web lists-archives.com

Bug#852956: ITP: golang-github-xtaci-kcp -- A Full-Featured Reliable-UDP Library for golang




Package: wnpp
Severity: wishlist
Owner: Roger Shimizu <rogershimizu@xxxxxxxxx>

* Package name    : golang-github-xtaci-kcp
  Version         : 2.14+git20170120+ds-1
  Upstream Author : Daniel Fu <daniel820313@xxxxxxxxx>
* URL             : https://github.com/xtaci/kcp-go
* License         : Expat
  Programming Lang: Go
  Description     : A Full-Featured Reliable-UDP Library for golang

 KCP (golang-github-xtaci-kcp-dev) is a full-featured Reliable-UDP library
 for golang. It provides reliable, ordered, and error-checked delivery of
 a stream of octets between applications running on hosts communicating
 over an IP network.
 .
 Features:
   • Optimized for Online Games, Audio/Video Streaming.
   • Compatible with skywind3000's (https://github.com/skywind3000)
     C version with optimizations.
   • Cache friendly and Memory optimized design in golang.
   • Compatible with net.Conn (https://golang.org/pkg/net/#Conn)
     and net.Listener (https://golang.org/pkg/net/#Listener).
   • FEC (Forward Error Correction)
     (https://en.wikipedia.org/wiki/Forward_error_correction)
     Support with Reed-Solomon Codes
     (https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction)
   • Packet level encryption support with AES, TEA, 3DES, Blowfish, Cast5,
     Salsa20, in CFB mode. Conventions Control messages like SYN/FIN/RST
     in TCP are not defined in KCP, you need some keepalive mechanims
     in the application-level. A real world example is to use some
     multiplexing protocol over session, such as
     smux (golang-github-xtaci-smux-dev),
     see kcptun (https://github.com/xtaci/kcptun) for example.