Skip to content

Releases: xtaci/kcptun

v20241119

19 Nov 06:21
Compare
Choose a tag to compare

Fix #977

$ go version
go version go1.23.2 linux/amd64

$ date
Tue Nov 19 02:13:15 PM CST 2024
Setting GO111MODULE to on
7b3f829df563f3899df56cbecdd9eaccfbbe4bb6  kcptun-linux-loong64-20241119.tar.gz
4c24d43a9b0c52d13b86e43bb6e1ad0edaac1704  kcptun-linux-amd64-20241119.tar.gz
e90bd2cad6d97c186495b5c053087362fa48645b  kcptun-darwin-amd64-20241119.tar.gz
6a21a8aad314abf3c6774ded968edb09460044e9  kcptun-windows-amd64-20241119.tar.gz
a796cbcf82b559a690fe91d535465654ce06bb2f  kcptun-freebsd-amd64-20241119.tar.gz
f0956cf5347a2cbb7e83abd72e29f9745cfbe2f0  kcptun-linux-386-20241119.tar.gz
4e6b6d1d94d09310c07afa015e9f166a716315f8  kcptun-windows-386-20241119.tar.gz
0fe824576aefd2344d5549c18e04ecd5ec310201  kcptun-linux-arm5-20241119.tar.gz
7bf4977d86dbcfece9b38d05171a760ce44e963c  kcptun-linux-arm6-20241119.tar.gz
33bb3532f724d71d6ff33a661a401db875413c46  kcptun-linux-arm7-20241119.tar.gz
6a70cb1839a30d4079543f4df28dc14c4f3c7d5b  kcptun-linux-arm64-20241119.tar.gz
06fae814a910a9d89087b39eebb2cd962c126a8c  kcptun-darwin-arm64-20241119.tar.gz
58931cab0b16246c862f2dfa822081541fdcaca8  kcptun-windows-arm64-20241119.tar.gz
11d153608af23dacc90747df84b31fa3f5d870d6  kcptun-linux-mipsle-20241119.tar.gz
250e9becce47566a24abab9b85f3c976bee12f39  kcptun-linux-mips-20241119.tar.gz

What's Changed

New Contributors

Full Changelog: v20241031...v20241119

Recompiled

31 Oct 11:58
003bd44
Compare
Choose a tag to compare

What's Changed

Full Changelog: v20240919...v20241031

$ go version
go version go1.23.2 linux/amd64

$ date
Thu Oct 31 19:54:21 CST 2024
Setting GO111MODULE to on
e054db66c1343f57ebc71b8b3b1d118b8a7bd532  kcptun-linux-loong64-20241031.tar.gz
666ec4e25b0bbdc600950c8efed2d73c9933fa1a  kcptun-linux-amd64-20241031.tar.gz
209ffe5e65e97850e5c678174777b771c2ed90a2  kcptun-darwin-amd64-20241031.tar.gz
e391e4da9569524fee8a2749c35feab24934e941  kcptun-windows-amd64-20241031.tar.gz
07600292294f3bc4f4a20a88a7ea6b137ca4d87b  kcptun-freebsd-amd64-20241031.tar.gz
428642cf9fee5a28e99853f35411fbf58d3aadb8  kcptun-linux-386-20241031.tar.gz
28d822dece8c2dffa01c68220d4f9f7bf882bd3c  kcptun-windows-386-20241031.tar.gz
f051af3726f18288f5826c4526842797ba6a0f3a  kcptun-linux-arm5-20241031.tar.gz
7a7a2402af0186e1c1df3d47e17894625b7fa4bb  kcptun-linux-arm6-20241031.tar.gz
9caafa09513f918ee840611211a2c2e174c4e8b5  kcptun-linux-arm7-20241031.tar.gz
2612d6407c5fbfceb78418090f3f48511b6d8ab7  kcptun-linux-arm64-20241031.tar.gz
49959089ae608e6eef83307c130dee92bb93d4b7  kcptun-darwin-arm64-20241031.tar.gz
2b308341ee4274d3ed3fd8f2b68d01501c4059b6  kcptun-windows-arm64-20241031.tar.gz
bb72f6dfeae97ddaab3cca2fe7f134d252d7afc4  kcptun-linux-mipsle-20241031.tar.gz
57403db3776de7b4a44e49349c92ea0d6cc27ad9  kcptun-linux-mips-20241031.tar.gz

fix signal handler

19 Sep 10:39
Compare
Choose a tag to compare

What's New?

  1. Fixed signal handling in systemd: #969
  2. Special loong64(中国龙芯)(updated 20241001) :
    kcptun-linux-loong64-20240919.tar.gz

Building information

$ go version
[kcptun-linux-loong64-20240919.tar.gz](https://github.com/user-attachments/files/17202697/kcptun-linux-loong64-20240919.tar.gz)

go version go1.23.1 linux/amd64

$ date
Thu Sep 19 18:36:24 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
a8399090fac384754517652c83ead8b4522bf128  kcptun-linux-amd64-20240919.tar.gz
ed8cc19921fd4700d1494f53c991c25f47620ecf  kcptun-darwin-amd64-20240919.tar.gz
c0035c83d85d13aa700723823a0fd194cd4c3852  kcptun-windows-amd64-20240919.tar.gz
95a7f42d3ef686d3013a7099ceaf0dbeb579ce67  kcptun-freebsd-amd64-20240919.tar.gz
d5cf1623e1750cc21441df878d84bfe024893185  kcptun-linux-386-20240919.tar.gz
448a6e4e588afd1f1c1a256adfb590c5aa533105  kcptun-windows-386-20240919.tar.gz
c26962b4ab962e3d15ea0f2382284d005c962d72  kcptun-linux-arm5-20240919.tar.gz
064b0c4c56c8721f174883a0e8479f3a9660ee44  kcptun-linux-arm6-20240919.tar.gz
a0be1028abf3ff578f15b09bc32c8989f1290de0  kcptun-linux-arm7-20240919.tar.gz
eb4e21cb0cdc19fcfa7412393d22bd23047c64d6  kcptun-linux-arm64-20240919.tar.gz
3803c499486241f24ac3cc2a91f5cbadd86076a6  kcptun-darwin-arm64-20240919.tar.gz
f6cf4032d3d445794491a55ea9be7292bab5bd8b  kcptun-windows-arm64-20240919.tar.gz
c3d26504b916acb4e87da78702ed82fcba42b441  kcptun-linux-mipsle-20240919.tar.gz
92177273155e611fd9a3196b5391e513533afe80  kcptun-linux-mips-20240919.tar.gz
(龙芯)
3786cd29e5ed943acc0823af38e8aeb820af1e3f332f556d9d9ccfe5bb1abbcc  build/kcptun-linux-loong64-20240919.tar.gz

What's Changed

Full Changelog: v20240906...v24240919

better FIN

06 Sep 06:27
Compare
Choose a tag to compare

What's New?

  1. make 'FIN' cmd as normal data instead of control message in xtaci/smux@f4519fc , if some TCP sender send and close, smux will terminate prior than receiving data stream.

Building information

$ go version
go version go1.23.1 freebsd/amd64

$ date
Fri Sep  6 14:22:19 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
eb0c384817fa01587de5965d5c15dea995f349bf  kcptun-linux-amd64-20240906.tar.gz
5e3c280c9773318ffd05262cb7350af08dd54b72  kcptun-darwin-amd64-20240906.tar.gz
54b61bb6481061796569c00484d3511d401ff355  kcptun-windows-amd64-20240906.tar.gz
ae8ae58c6ee51e78957b3bf6a2161109dea23e02  kcptun-freebsd-amd64-20240906.tar.gz
e1d0dbc69742a3878979383ad77f00bad8694c98  kcptun-linux-386-20240906.tar.gz
51d71f0322f1bb88a1825a1f290282d16878534e  kcptun-windows-386-20240906.tar.gz
7f5b0cf4ba676d8fee5b130fd9beeda19c18baa7  kcptun-linux-arm5-20240906.tar.gz
3192dd9fba51b8ad829c0260920af2efc15c096b  kcptun-linux-arm6-20240906.tar.gz
7c1d375a66d8dfb0eabc3abd127531bd8ff11882  kcptun-linux-arm7-20240906.tar.gz
d7a037839bca38834c56d893a7bb6971562cc42b  kcptun-linux-arm64-20240906.tar.gz
b673b99ff51182f7fd776a532c8d65d56bf496ff  kcptun-darwin-arm64-20240906.tar.gz
7202a7ab539a882ca900de2315fb88d059aeac34  kcptun-windows-arm64-20240906.tar.gz
3588e3df47b3742ab761ba03d2c78f9632bb01d4  kcptun-linux-mipsle-20240906.tar.gz
bcbd6f009609da727b7c395a980251c81f62517a  kcptun-linux-mips-20240906.tar.gz

Full Changelog: v20240831...v20240906

Parameterized 'closewait'

31 Aug 04:55
Compare
Choose a tag to compare

What's New?

  1. parameterized 'closeWait' #967

client:

   --closewait value                the seconds to wait before tearing down a connection (default: 0)

server:

   --closewait value                the seconds to wait before tearing down a connection (default: 30)

Building information

$ go version
go version go1.23.0 linux/amd64

$ date
Sat Aug 31 12:52:47 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
9b8ef102adafbf09bd06fa7a3249583860b26ad7  kcptun-linux-amd64-20240831.tar.gz
3fe250ea94cf759bd101681dca8d2ff2d5447afb  kcptun-darwin-amd64-20240831.tar.gz
4a1a08887092f2d5a195f906a64f44fd23bcb366  kcptun-windows-amd64-20240831.tar.gz
04223caf6ca932a1837ec5ce8ff568e879c6462f  kcptun-freebsd-amd64-20240831.tar.gz
171116d4228a5d77ae292f72becfe9630ee287a2  kcptun-linux-386-20240831.tar.gz
cdca188bb2a3d68c5e87711b113a50078fa47c3e  kcptun-windows-386-20240831.tar.gz
0c61febcb057f051b1b315cca6bf9c24fdcbd976  kcptun-linux-arm5-20240831.tar.gz
df3cd407f21c4b269d80fc8150b8a04b499bd43b  kcptun-linux-arm6-20240831.tar.gz
19675b34ee3812865ce2fc1bdd3a023c32e0a810  kcptun-linux-arm7-20240831.tar.gz
3ec763f8644993fcf0dec70886a5d3c5d766b74d  kcptun-linux-arm64-20240831.tar.gz
2c239170c3a862a555c35b5f34a5083a3f10eac7  kcptun-darwin-arm64-20240831.tar.gz
8b42ce3d5ae64f0909a052652f507a19899b5e7e  kcptun-windows-arm64-20240831.tar.gz
3835f35f7d78dcaa0bce49dff858fbc79c5d38f2  kcptun-linux-mipsle-20240831.tar.gz
f84530d21ff3fb1bd09156125925a1e62d7046da  kcptun-linux-mips-20240831.tar.gz

Full Changelog: v20240828...v20240831

Transport&Security Enhancement!

28 Aug 07:53
Compare
Choose a tag to compare

🌻🌻IMPORTANT NOTICE: THIS VERSION IS THE LATEST STABLE RELEASE DURING SUMMER VACATION 2024 .🌻🌻
🌻🌻AFTER THIS, I'LL BE BUSIER
🌻🌻

What's New?

  1. Enhanced autotune stability.
  2. Fixed an FEC boundary issue in timely-non-continuous packet.(Link is more stable)
  3. Support for Quantum Permutation Pad for quantum-resistent communication, based on the implementation in https://github.com/xtaci/qpp .
   --QPP                            enable Quantum Permutation Pads(QPP)
   --QPPCount value                 the prime number of pads to use for QPP: The more pads you use, the more secure the encryption. Each pad requires 256 bytes. (default: 61)

Your could also specify

     "qpp":true,
     "qpp-count":61,

in your client and server side json file. These 2 parameters must be identical on both sides.
4. Added a closeWait(30 seconds) before terminating a connection pair, mitigating Firefox PR_END_OF_FILE_ERROR issue.
5. Fix socket-fd closing in '-tcp' mode, only available under linux, previous release may leak socket fds.
6. Build with well-organized codes.

Building information

$ go version
go version go1.23.0 freebsd/amd64

$ date
Wed Aug 28 14:07:08 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
30bfe2554a7de1404bc45810857f126ee4f3ae5f  kcptun-linux-amd64-20240828.tar.gz
39dc276530259a1d774d4001957568f5196e7252  kcptun-darwin-amd64-20240828.tar.gz
1750037cee5fb702c13d8e82c43dd8542ef844b2  kcptun-windows-amd64-20240828.tar.gz
25bdedf357fe88c11a53df18f0713b046fcde720  kcptun-freebsd-amd64-20240828.tar.gz
87336156b0ec18a3e03055efbd74758f7b6ae61c  kcptun-linux-386-20240828.tar.gz
8c73f9383800f3a0df5eca984f384463778d0cc8  kcptun-windows-386-20240828.tar.gz
45a094102aa2460141ee0a9ae7044194808b6203  kcptun-linux-arm5-20240828.tar.gz
e9189d2beefbe3e429b2ddb6a6bf18e7ea549319  kcptun-linux-arm6-20240828.tar.gz
911a6d0d52b925ee770b90e8647cf9ee7f4be4a5  kcptun-linux-arm7-20240828.tar.gz
e616ba81205444882a570251189d766409f88f9d  kcptun-linux-arm64-20240828.tar.gz
10335058862f8ea9a6ac513278ffe0f04dc0e940  kcptun-darwin-arm64-20240828.tar.gz
0c5b558ed5226a8a108a9f9a98bf52cf0de9b482  kcptun-windows-arm64-20240828.tar.gz
1a2a68079796118d677f1d23e6b217e3f5755de3  kcptun-linux-mipsle-20240828.tar.gz
a72acab6883e51615e319c4886a87e7ebd71843c  kcptun-linux-mips-20240828.tar.gz

What's Changed

New Contributors

Full Changelog: v20240107...v20240828

Profile-guided optimization on client

07 Jan 09:05
Compare
Choose a tag to compare
  1. pgo file updated in client.
  2. Do not send FEC packets while previous packets are older than RTO, as a result, only in continuous streams, parities are sent along with.

$ go version
go version go1.21.5 linux/amd64

$ date
Sun Jan  7 17:02:20 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
1d52774a19dd013d0beee487444a2d399c8cb9d4  kcptun-linux-amd64-20240107.tar.gz
993a9e3097f12ab543959c04eab1778622be6862  kcptun-darwin-amd64-20240107.tar.gz
9386384990ae0a057170ab127911ae03342adf53  kcptun-windows-amd64-20240107.tar.gz
9c50f51ac2c672c16c1b7e6b91efbd8ec97fd161  kcptun-freebsd-amd64-20240107.tar.gz
08d4cb1adc58f71c26907a6cb73fa13123497c39  kcptun-linux-386-20240107.tar.gz
f92815da5d15c3f9c62ed8f5e803b5eebdde1146  kcptun-windows-386-20240107.tar.gz
9dd8b1ecda7ab2899111133143fdaf226f174fa6  kcptun-linux-arm5-20240107.tar.gz
e07a768a4179dfcac6d2edca022c58c0cb59dd04  kcptun-linux-arm6-20240107.tar.gz
192c512d2ba1ca6cefbc6486da09132ef778fab4  kcptun-linux-arm7-20240107.tar.gz
9743164b98413174a3587159e3fead911e521523  kcptun-linux-arm64-20240107.tar.gz
72369575e29c9b6da375ea4361314692b4e1e5a3  kcptun-darwin-arm64-20240107.tar.gz
b5b23913f196cd5173b7eba984553af37e118ca3  kcptun-windows-arm64-20240107.tar.gz
b85675fa17bfd47074f00041e718cb36fe98c0e4  kcptun-linux-mipsle-20240107.tar.gz
37b8402369306ac3fa9da8668ce92bd76c9f822a  kcptun-linux-mips-20240107.tar.gz

a bug fix in fec auto tuning

12 Oct 15:34
Compare
Choose a tag to compare
  1. fixed a bug in fec tuning when fec parameters on client & server side are set differently. xtaci/kcp-go@ceebe17

$ go version
go version go1.21.3 linux/amd64

$ date
Thu Oct 12 23:29:14 CST 2023

$ ./build-release.sh
Setting GO111MODULE to on
d274eb50ab0f8b3dda42d57198e009f6abfcc850  kcptun-linux-amd64-20231012.tar.gz
ecd4d86cd74eda7c6fc3483f90dcaf20a7780c51  kcptun-darwin-amd64-20231012.tar.gz
b370c50569b29c22b635f8e64a6d2b77b9a5974e  kcptun-windows-amd64-20231012.tar.gz
6c21e6ddf615b638ee829a2626248f94e30b3b53  kcptun-freebsd-amd64-20231012.tar.gz
decef69ae6c42ccd205746c1e29ec12024fa48a9  kcptun-linux-386-20231012.tar.gz
f800492ea1f53c328eda8d2ad9396a9f101e2519  kcptun-windows-386-20231012.tar.gz
db096a27b6240b027f6238f85ef8513188a87d32  kcptun-linux-arm5-20231012.tar.gz
7d357740aafe2b143d7d784efd1c44dc09f2d926  kcptun-linux-arm6-20231012.tar.gz
c2cdc7f67eb6d8a8fbf0aca07ec6ac8ae9feb44f  kcptun-linux-arm7-20231012.tar.gz
c495361807bfcb3533444423a2dfa41a54dcd3b8  kcptun-linux-arm64-20231012.tar.gz
95609a21306b92ed2755cb7177106f14d73f64c5  kcptun-darwin-arm64-20231012.tar.gz
cfa12cf0c8bfe52c2ad7223890cc326089d9683e  kcptun-windows-arm64-20231012.tar.gz
d52cb90291132efa40e4b36482efe5feecc5a272  kcptun-linux-mipsle-20231012.tar.gz
4f90cd0fbaf61ea2b4a97d4c8ea6b074eea3a753  kcptun-linux-mips-20231012.tar.gz

go1.21 rebuild

11 Aug 05:39
Compare
Choose a tag to compare
  1. use clear to zero slice in kcp-go.
  2. use default.pgo to optimize code generation in kcptun/client side
  3. compiler upgraded to go 1.21
  4. added an option -pprof on client side to support PGO
the default.pgo used in building.

(pprof) top
Showing nodes accounting for 1.34s, 65.05% of 2.06s total
Dropped 104 nodes (cum <= 0.01s)
Showing top 10 nodes out of 137
      flat  flat%   sum%        cum   cum%
     0.60s 29.13% 29.13%      0.60s 29.13%  runtime/internal/syscall.Syscall6
     0.42s 20.39% 49.51%      0.42s 20.39%  crypto/aes.encryptBlockGo
     0.08s  3.88% 53.40%      0.09s  4.37%  runtime.scanblock
     0.07s  3.40% 56.80%      0.07s  3.40%  runtime.futex
     0.04s  1.94% 58.74%      0.04s  1.94%  runtime.execute
     0.04s  1.94% 60.68%      0.07s  3.40%  runtime.selectgo
     0.03s  1.46% 62.14%      0.03s  1.46%  sync.(*Mutex).Unlock
     0.02s  0.97% 63.11%      0.02s  0.97%  container/heap.Pop
     0.02s  0.97% 64.08%      0.02s  0.97%  github.com/klauspost/reedsolomon.galMulSliceXor
     0.02s  0.97% 65.05%      0.02s  0.97%  github.com/templexxx/xorsimd.bytes16

$ go version
go version go1.21.0 linux/amd64

$ date
Fri Aug 11 13:04:30 CST 2023

$ ./build-release.sh
Setting GO111MODULE to on
a721f5027ce295c86378f0fbfd1136859f6e7547  kcptun-linux-amd64-20230811.tar.gz
20064f83eee28c825cb00805ecf2ce822a34253a  kcptun-darwin-amd64-20230811.tar.gz
9124aa40bcd69b723acb6cf19b35da7c69873593  kcptun-windows-amd64-20230811.tar.gz
02223d4f724107ba3b20abe2072c6f1cd3fd5976  kcptun-freebsd-amd64-20230811.tar.gz
eeeaa43088328043837bd00464c6a51be0501b56  kcptun-linux-386-20230811.tar.gz
27ac1d2fbdfeee3c21e6a63319d15acbeb3dbba8  kcptun-windows-386-20230811.tar.gz
964b47c9191d0fdb21d6580be3ec2678978d37c2  kcptun-linux-arm5-20230811.tar.gz
8860e4ee94562b05e9b1d4b129ae0259858be358  kcptun-linux-arm6-20230811.tar.gz
51214da760af3a1eed8919c82a488b54ad13b485  kcptun-linux-arm7-20230811.tar.gz
7738a68de048506f75202e6409ee0abb4123231b  kcptun-linux-arm64-20230811.tar.gz
9288bb844a121a2250bf26471e1c305ae22dee16  kcptun-darwin-arm64-20230811.tar.gz
08775d1289936443f9a76f93d78b73c5a3c79255  kcptun-windows-arm64-20230811.tar.gz
503a7d06feefe8eaad228f51827a09e092b968cb  kcptun-linux-mipsle-20230811.tar.gz
e5e76122970c9f9c939dbd08d262d5573c0a4202  kcptun-linux-mips-20230811.tar.gz

Fixed a bug that in rare case kcptun will hang

14 Feb 14:31
Compare
Choose a tag to compare
  1. Fixed a bug in smux that in rare case, kcptun will hang up forever in smux.stream.OpenStream() & smux.stream.Close()
$ go version
go version go1.20 linux/amd64

$ date
Tue Feb 14 22:27:58 CST 2023

$ ./build-release.sh
Setting GO111MODULE to on
1783047eba56c897a7f32a39fef0b6398593cc16  kcptun-linux-amd64-20230214.tar.gz
ac3b1aef1d5e3fb5cdfe4fcad6a8424ca7a18953  kcptun-darwin-amd64-20230214.tar.gz
b15f165a92b8754f7fc72160fec78ea992c647f5  kcptun-windows-amd64-20230214.tar.gz
7f192c2171c543789f33661dde1144c2b9e66bac  kcptun-freebsd-amd64-20230214.tar.gz
9aaaa19753a165276efdada10191a9c6d4f05d16  kcptun-linux-386-20230214.tar.gz
e169df4c8b9f95131e464a4cd171e8b2878ee2c4  kcptun-windows-386-20230214.tar.gz
b3a5b4cecd033b2921854bb09bf30141d089a6fa  kcptun-linux-arm5-20230214.tar.gz
38aed3cfaf7af2128e3fc623ce2447668c18d908  kcptun-linux-arm6-20230214.tar.gz
40432caa951a85b8094938548db232cb379bfcc9  kcptun-linux-arm7-20230214.tar.gz
270f0bbac8bdaf5475494d40318d1cbe013c552f  kcptun-linux-arm64-20230214.tar.gz
08d2e14702010a68bb0ffd2f769c71772af93336  kcptun-darwin-arm64-20230214.tar.gz
ba204001f743a0e870991a217fb4ffbdcc7db1c5  kcptun-windows-arm64-20230214.tar.gz
3bdaef986c882b262132b5909c1092850c5d604a  kcptun-linux-mipsle-20230214.tar.gz
fa7bfc667e490b2f0bba1c8241253a41d8338b2e  kcptun-linux-mips-20230214.tar.gz