Skip to content

Releases: xtaci/kcptun

Support per-stream flow control and bugfix in KCP

24 Sep 05:34
Compare
Choose a tag to compare
  1. New option -smuxver , default is set to 1 which is compatible with previous releases. Now you can set -smuxver to 2 to enable per-stream flow control to make back-pressure on the remote sender and prevent connections from starving. Adjust -streambuf to set per-stream max memory usage, eg: -streambuf 2097152.
    Related issues: #722, xtaci/smux#18
    (Important note: smux version 1 and version 2 are not compatiblity, you need to upgrade on both sides to enable this feature.)
  2. Writable notification in kcp-go became more accurate.
  3. Fixed a bug in kcp, which may retransmit more segments than required. https://github.com/xtaci/kcp-go/releases/tag/v5.4.10

Recommended to upgrade

$ go version
go version go1.13 linux/amd64

$ date
Tue Sep 24 13:30:51 CST 2019

$ shasum *.tar.gz
8c9fe3dbfa13347bf9fc445aadecd374693ed58f  kcptun-linux-amd64-20190924.tar.gz
0ca047871be5b3fa1d8fde0d7f1a890b052e1aea  kcptun-darwin-amd64-20190924.tar.gz
2cbd7098af1c7c210a531fa80ace6d6fc68288af  kcptun-windows-amd64-20190924.tar.gz
13c306c66762250fc19e36c4ae55903eaaece12e  kcptun-freebsd-amd64-20190924.tar.gz
f33a6d40f01387d8e74b344b80e614e3981eb576  kcptun-linux-386-20190924.tar.gz
530d380a6e750991553466a44c1e64a53061a250  kcptun-windows-386-20190924.tar.gz
1841d8c1d04a825be57d702506e7123a9058256f  kcptun-linux-arm5-20190924.tar.gz
13de58842dd2f1b3feea17359d6ce674e5812c46  kcptun-linux-arm6-20190924.tar.gz
c92218c141b4138181de26568736f7647f4eab40  kcptun-linux-arm7-20190924.tar.gz
2b76c1431e785a81243f91dfa3def478a38e7e1c  kcptun-linux-arm64-20190924.tar.gz
e1dcbc5430717a90db49639e186206cbb3738474  kcptun-linux-mipsle-20190924.tar.gz
ce068bd04bfcf5ae9db6844d474fcac4d6619f32  kcptun-linux-mips-20190924.tar.gz

Fair queue support in smux

10 Sep 15:02
Compare
Choose a tag to compare
  1. When the sliding window is full which blocks packet sending, smux will prioritize to send data from the least sent stream. (You need to upgrade on the data sender.)
  2. when -tcp is specified, server will listen on both tcp & udp port.
$ go version
go version go1.13 linux/amd64

$date
Tue Sep 10 22:22:16 CST 2019

$ shasum *.tar.gz
abd95129c78bc1af7616229acc3cdcaebd0b27de  build/kcptun-darwin-amd64-20190910.tar.gz
f9e9e2d14a4a279928aa0c8adf90532aad7f6e49  build/kcptun-freebsd-amd64-20190910.tar.gz
d5e720fe0350835eb90f344ec4eedb7a21bd09b7  build/kcptun-linux-386-20190910.tar.gz
243b700560fdda0ea50f1b336ff3d1e7dedd1c0b  build/kcptun-linux-amd64-20190910.tar.gz
2ef93d4d14f6fa6d3cf6052b109f394336a39394  build/kcptun-linux-arm5-20190910.tar.gz
0f54526a0381f80c7bb60e51d679a2355c479c79  build/kcptun-linux-arm6-20190910.tar.gz
516719fc4a5fa018a3628777ac123c396f082f58  build/kcptun-linux-arm64-20190910.tar.gz
c55e64bd4293491dcc47920d2fb6e1f36a14a4c3  build/kcptun-linux-arm7-20190910.tar.gz
d973fc5d9ee96428709a31b1816db16a297f2877  build/kcptun-linux-mips-20190910.tar.gz
adb425ea7c2ddff625cc7b42559a8e97e36eaa30  build/kcptun-linux-mipsle-20190910.tar.gz
9f27b2d03e6be5b9c8b45a2c08335032cea88768  build/kcptun-windows-386-20190910.tar.gz
eb95ac0ee50e39f694a3436198ca2d7aa00231ad  build/kcptun-windows-amd64-20190910.tar.gz

re-compiled with go1.13

05 Sep 06:00
Compare
Choose a tag to compare
  1. re-compiled with go1.13
$ go version
go version go1.13 darwin/amd64

$date
2019年 9月 5日 星期四 13时57分31秒 CST

$ shasum *.tar.gz
7e7be8c8febfc9da7b7e9698c0b2d0b73f3e2aa1  kcptun-linux-amd64-20190905.tar.gz
5e1538045518dead74ea41ef9200bf04f2dedf03  kcptun-darwin-amd64-20190905.tar.gz
dbe307b5d943ba89d55f450221d892557af5302a  kcptun-windows-amd64-20190905.tar.gz
6f0270c309c08127fe62643ec61080ff0244d0eb  kcptun-freebsd-amd64-20190905.tar.gz
bafcc43c0b025c47573789a36f8aefd6dde8e3ca  kcptun-linux-386-20190905.tar.gz
2b874b6a174101f04c2fb12319ecbd1360341d25  kcptun-windows-386-20190905.tar.gz
bf012be364c43a2acfbf6a02ded337c3925e9c10  kcptun-linux-arm5-20190905.tar.gz
2d9dd5cec8c87362eeb839bc67c549fb25936fea  kcptun-linux-arm6-20190905.tar.gz
909472e3159f7c1abbcdf898af7543058a279ede  kcptun-linux-arm7-20190905.tar.gz
d94c12eed4a2e5ebab8e3c293a80b7f0465bc9ec  kcptun-linux-arm64-20190905.tar.gz
bde947601edc2c450cda21a2a84916a217bf53a1  kcptun-linux-mipsle-20190905.tar.gz
8abaaf57bc9a9bdfe75eb6b4d8ee69f17e83a8de  kcptun-linux-mips-20190905.tar.gz

-dscp works with -tcp option now

09 Aug 03:47
Compare
Choose a tag to compare
  1. -dscp option works with -tcp option now
    #704
$ go version
go version go1.12.7 darwin/amd64

$date
2019年 8月 9日 星期五 11时44分20秒 CST

$ shasum *.tar.gz
f455aec9ee4aa6025d79f752f5f19e3e11b08ba0  kcptun-linux-amd64-20190809.tar.gz
a36934fd9a9315a52208f2e909e0de8a1fde88a8  kcptun-darwin-amd64-20190809.tar.gz
047d320e58c56d0af91bb40c5a0a8db8c37a973b  kcptun-windows-amd64-20190809.tar.gz
20a2c8c5339df994fe38b1fcbfc93bd986089d1e  kcptun-freebsd-amd64-20190809.tar.gz
0ab8f53ad142f5836e772f996d66030356fa9928  kcptun-linux-386-20190809.tar.gz
d5855764854fef997c0fa0911ec38d02b0a7d048  kcptun-windows-386-20190809.tar.gz
904c377065a0bc0af682d6ab7f7adfda801a0716  kcptun-linux-arm5-20190809.tar.gz
910806ec0ed0bf025540021e48bb945a23a2ac60  kcptun-linux-arm6-20190809.tar.gz
94a1355552269b2ebae4a46ca5b559a6fc13516f  kcptun-linux-arm7-20190809.tar.gz
9b7b8f50f16310e4ead3a85c9fa3fee63a902dc2  kcptun-linux-arm64-20190809.tar.gz
9caa93152bd052c7cf667cce610d78e198a0b7be  kcptun-linux-mipsle-20190809.tar.gz
9ef274b53842c45935d63461f4db3c92b41dae5e  kcptun-linux-mips-20190809.tar.gz

support on unix domain socket

25 Jul 04:14
Compare
Choose a tag to compare
  1. on server side, you can specify -target path/to/unix/socket now, #704
$ go version
go version go1.12.7 darwin/amd64

$date
2019年 7月25日 星期四 12时12分08秒 CST

$ shasum *.tar.gz
7fc47ee1898d2576152bcb8079f86cb390c081b2  kcptun-linux-amd64-20190725.tar.gz
8c1aa94ac0d73771e8a1dde23caf02ecb6157f9a  kcptun-darwin-amd64-20190725.tar.gz
0357c34bfab5f410bcd4657ed0e9247520b581ef  kcptun-windows-amd64-20190725.tar.gz
b7a3485ecda68febe5712f935139247666d5eace  kcptun-freebsd-amd64-20190725.tar.gz
2b060b6cfdffab8d79b3abbd1e1c920fff90d500  kcptun-linux-386-20190725.tar.gz
e7819b09172ad87322d2c99b9b3588de79e6b8cd  kcptun-windows-386-20190725.tar.gz
d717bdf48d5258b7b738d7b1a9ee006afbe87dec  kcptun-linux-arm5-20190725.tar.gz
16e7c1a941cf1395ed8d48207533c456b3f5bd3e  kcptun-linux-arm6-20190725.tar.gz
54bc7509d6983c9db574b4c8b44e2c55c96534fd  kcptun-linux-arm7-20190725.tar.gz
22f2999d1e279eb3027a58c45b2939a7ad7b2f88  kcptun-linux-arm64-20190725.tar.gz
90089ab65a09a66af03b8c726d75e63ba7764581  kcptun-linux-mipsle-20190725.tar.gz
a1418562d4cad07c5bd2a1734bd07c04b2b54fc7  kcptun-linux-mips-20190725.tar.gz

optimizations on linux `-tcp` option

18 Jul 06:28
Compare
Choose a tag to compare
  1. support -tcp option for linux(EXPERIMENTAL) . To enable tcp transmission, you should enable it on both client and server, supported only under LINUX with iptables, require root privilege.
  2. adjust ack/seq follow scheme

discussion on this release:
#696

$ go version
go version go1.12.7 darwin/amd64

$ uname -a
Darwin xtacideMacBook-Pro.local 18.6.0 Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/RELEASE_X86_64 x86_64

$ shasum *.tar.gz
972645b7b3679ac262a7432d87a06c785e218808  kcptun-darwin-amd64-20190718.tar.gz
4f11a55741857870f90b5b32a5a50d788e3a2f7b  kcptun-freebsd-amd64-20190718.tar.gz
2d02a7c0c95c1377918715aaa6c6503d4418ff5b  kcptun-linux-386-20190718.tar.gz
28ebaae18d5d83890fb4ab6394a6d0400893cd5c  kcptun-linux-amd64-20190718.tar.gz
58b6b87f80d3255ab18c6fb1c0aad272f6be3591  kcptun-linux-arm5-20190718.tar.gz
cfa3359377c1ed6de5b1e0d42ce76a1a1132340f  kcptun-linux-arm6-20190718.tar.gz
69a02091c11332a27b1362bf8b14af14cad585fc  kcptun-linux-arm64-20190718.tar.gz
6d9a3a52ba4394b1293fd27e64d7367bb3c60783  kcptun-linux-arm7-20190718.tar.gz
f10669e6c8bc153d1a07caa4c85e77ba17966d2c  kcptun-linux-mips-20190718.tar.gz
94e493615294ca81c088bfcff33021d8d167c42a  kcptun-linux-mipsle-20190718.tar.gz
ac8ea8889c5bc405301d1f6d38de04c1ef863a4e  kcptun-windows-386-20190718.tar.gz
932d4a618ab185af4ca9abd076e39d42b1321191  kcptun-windows-amd64-20190718.tar.gz

$ date
2019年 7月18日 星期四 14时24分53秒 CST

optimizations on -tcp option for linux

17 Jul 07:58
Compare
Choose a tag to compare
  1. support -tcp option for linux(EXPERIMENTAL) . To enable tcp transmission, you should enable it on both client and server, supported only under LINUX with iptables, require root privilege.

  2. fix a potential race between cleaner() goroutine and WriteTo()

discussion on this release:
#696

$ go version
go version go1.12.7 linux/amd64

$ uname -a
Linux DESKTOP-7FL7RC4 4.4.0-18362-Microsoft #1-Microsoft Mon Mar 18 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

$ shasum *.tar.gz
763b43bce8d34c586af0884794d7aac7e2e9bf0d  kcptun-darwin-amd64-20190717.tar.gz
db735672cb10b5a2958d52429bc7afab175b047e  kcptun-freebsd-amd64-20190717.tar.gz
c95d9bb6117289b195401fc2e1b6a1d2ae7a3828  kcptun-linux-386-20190717.tar.gz
834498340bfcf6d3bcaa1cb3b2d9dd6b969353fb  kcptun-linux-amd64-20190717.tar.gz
de131900a1d7efb5299d7050c68a7877d721042c  kcptun-linux-arm5-20190717.tar.gz
34b15b668bc1c20d11a3545f8b8d53900796e3b7  kcptun-linux-arm6-20190717.tar.gz
3ca2abec040c11af1c59ddcb45c23e90840006a0  kcptun-linux-arm64-20190717.tar.gz
5d481cbe3e09009056e8c9bf2443cd3ae2995e10  kcptun-linux-arm7-20190717.tar.gz
53e030e7594905cba846d2a271035f6fe757f478  kcptun-linux-mips-20190717.tar.gz
3d2449b1b56be927446edd6a3aaabb1523552fd1  kcptun-linux-mipsle-20190717.tar.gz
ad92a7f49ac94d89583b32a8b874b9e68532b129  kcptun-windows-386-20190717.tar.gz
0bf62af3a6af3ea271310dbc57ad9679f94bcb4d  kcptun-windows-amd64-20190717.tar.gz

$ date
Wed Jul 17 15:55:36 CST 2019

optimizations on -tcp option for linux

16 Jul 09:02
Compare
Choose a tag to compare
  1. support -tcp option for linux(EXPERIMENTAL) . To enable tcp transmission, you should enable it on both client and server, supported only under LINUX with iptables, require root privilege.

discussion on this release:
#696

$ go version
go version go1.12.7 darwin/amd64

$ uname -a
Darwin xtacideMacBook-Pro.local 18.6.0 Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/RELEASE_X86_64 x86_64

$ shasum *.tar.gz
023aea9a77a06c36413f78f3ff96a153da1f28b5  kcptun-linux-amd64-20190716.tar.gz
069cef75d5522f127f0f7d979ccb9538137ada66  kcptun-darwin-amd64-20190716.tar.gz
6b494a14e44bea9f07c0d8f5793ca7ff7efea297  kcptun-windows-amd64-20190716.tar.gz
8615af8b73d7d9860de03c601befdc08e312f6e0  kcptun-freebsd-amd64-20190716.tar.gz
b939aec4cfe6f1af5cb3d0d627fce79026a1e3cf  kcptun-linux-386-20190716.tar.gz
df97d2f77cdd605f732a403021ad698cbba295f3  kcptun-windows-386-20190716.tar.gz
1e462e4373d4e8d4d4354b22a0d269a2de7720b8  kcptun-linux-arm5-20190716.tar.gz
848a1fbcfeda301ae66966e42124385252dccb7f  kcptun-linux-arm6-20190716.tar.gz
12ad0ee691926835c80b73b7f836ca70ef806d3e  kcptun-linux-arm7-20190716.tar.gz
5ad6e08b1b99f934fe257c5edec41f6b68031af7  kcptun-linux-arm64-20190716.tar.gz
4ddb9d41e60ccdd8aa8fdf1496a30470d36af6d9  kcptun-linux-mipsle-20190716.tar.gz
127c1956a885581d082a8f69eecb146c62b6cd2a  kcptun-linux-mips-20190716.tar.gz

$ date
2019年 7月16日 星期二 17时00分26秒 CST

support `-tcp` option for linux

15 Jul 06:02
Compare
Choose a tag to compare
  1. support -tcp option for linux(EXPERIMENTAL) . To enable tcp transmission, you should enable it on both client and server, supported only under LINUX with iptables, require root privilege.

discussion on this release:
#696

$ go version
go version go1.12.7 darwin/amd64

$ uname -a
Darwin xtacideMacBook-Pro.local 18.6.0 Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/RELEASE_X86_64 x86_64

$ shasum *.tar.gz
cdcd760628b82420c231c132bec91fb4bae6ed1a  kcptun-linux-amd64-20190715.tar.gz
b664b8dbfca78b33beeaac20acda595ce4ecc76a  kcptun-darwin-amd64-20190715.tar.gz
1d2db7b5c27e8a93d53d8d319665ea5b5faa8e34  kcptun-windows-amd64-20190715.tar.gz
7a824478c80fe00d0372c8e35367d83d5ce1750c  kcptun-freebsd-amd64-20190715.tar.gz
d712bf429dd3bd41338a55f88db952e0ae64bfec  kcptun-linux-386-20190715.tar.gz
f99e5a26f519557c3758495a6823120502068b5b  kcptun-windows-386-20190715.tar.gz
dce06f556d62584f1b9344d2af4710cb35ba384f  kcptun-linux-arm5-20190715.tar.gz
d31f7e6531ac67d87fcc09916f6bed64c1b08bec  kcptun-linux-arm6-20190715.tar.gz
f8988e747d4f5237a928966796b6a839960ac3ad  kcptun-linux-arm7-20190715.tar.gz
054b157601fd83da4032334131a4a89fe2558052  kcptun-linux-arm64-20190715.tar.gz
94ed697dbe05fdc7302da4a4517bdd054057b0ab  kcptun-linux-mipsle-20190715.tar.gz
2e43796922390c7f4022611f791bdd9d3d45b207  kcptun-linux-mips-20190715.tar.gz

$ date
2019年 7月15日 星期一 14时00分05秒 CST```

support `-tcp` option for linux

14 Jul 10:33
Compare
Choose a tag to compare
  1. support -tcp option for linux(EXPERIMENTAL) . To enable tcp transmission, you should enable it on both client and server, supported only under LINUX with iptables, require root privilege.

discussion on this release:
#696

$ go version
go version go1.12.7 linux/amd64

$ uname -a
Linux DESKTOP-7FL7RC4 4.4.0-18362-Microsoft #1-Microsoft Mon Mar 18 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

$ shasum *.tar.gz
89beb1c88422d6a73b6693f07290063f2fddf76d  kcptun-linux-amd64-20190714.tar.gz
ea7219013ee7df42b431add0908f3c453d0d2108  kcptun-darwin-amd64-20190714.tar.gz
49ae80d62d2d68001a04dac3272de08985d7001c  kcptun-windows-amd64-20190714.tar.gz
18a7310ad1da92fc5b35ab9d03a8c5985618fe41  kcptun-freebsd-amd64-20190714.tar.gz
b01221824e794bcd3f26246ea0c3af36649a2651  kcptun-linux-386-20190714.tar.gz
8faf525b847cda5c0f1022f1b496a2ecec770bd5  kcptun-windows-386-20190714.tar.gz
ba7f56218aa7ee3624aa839bf73a6217b87111a8  kcptun-linux-arm5-20190714.tar.gz
71f8830ee8a5b81006c3727e8d8237acd4ff2c5e  kcptun-linux-arm6-20190714.tar.gz
c5c63a1e6f713c40368c41e670b59415ad725079  kcptun-linux-arm7-20190714.tar.gz
2fea43afbfe6eb133d8633042d33aca42e3a042a  kcptun-linux-arm64-20190714.tar.gz
bdf95340c0bda0b940c0e35ed1d97f56062c6413  kcptun-linux-mipsle-20190714.tar.gz
2abf7c0fda32da7df277c9f0a80a71f5d38fca05  kcptun-linux-mips-20190714.tar.gz

$ date
Sun Jul 14 18:31:42 CST 2019