Skip to content

Releases: xtaci/kcptun

fix signal handler

19 Sep 10:39
Compare
Choose a tag to compare

What's New?

  1. Fixed signal handling in systemd: #969

Building information

$ go version
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

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

  • Bump golang.org/x/net from 0.19.0 to 0.23.0 by @dependabot in #944
  • Added github workflow for docker and dependabot by @itspooya in #946
  • Bump github.com/xtaci/qpp from 1.1.16 to 1.1.17 by @dependabot in #960
  • Bump golang.org/x/crypto from 0.25.0 to 0.26.0 by @dependabot in #963
  • Bump docker/build-push-action from 5 to 6 by @dependabot in #953
  • Bump github.com/xtaci/kcp-go/v5 from 5.6.12 to 5.6.13 by @dependabot in #964
  • Bump github.com/xtaci/kcp-go/v5 from 5.6.14 to 5.6.15 by @dependabot in #966

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

possible bugfix in smux

07 Feb 14:20
Compare
Choose a tag to compare
  1. Fixed a possible bug over 4G download.
  2. Fixed a possible leak in kcp-go.
  3. Recompiled with go1.20.
  4. Added windows/arm64 binary release.
  5. updated '-h' display
$ go version
go version go1.20 linux/amd64

$ date
Tue Feb  7 22:19:46 CST 2023

$ ./build-release.sh
Setting GO111MODULE to on
1eb633cfb499b70dd6d61aac68e3ee2b3d34e9a3  kcptun-linux-amd64-20230207.tar.gz
fe8de8387c204e53b32941ad05b1a724f1e890fc  kcptun-darwin-amd64-20230207.tar.gz
db2108fe7c450f842e43fdb126daa05d3315268e  kcptun-windows-amd64-20230207.tar.gz
7937c7b719c80beb5611e799b6683c68a9f7bbbc  kcptun-freebsd-amd64-20230207.tar.gz
96ca06dc92eac7b25a9ce158748a79e09a04376c  kcptun-linux-386-20230207.tar.gz
c23af27e515eba2d05aa5b700fb47ff3711dd909  kcptun-windows-386-20230207.tar.gz
2d1a55c0d901e0ec5f93e9417d0d65de4c6a3599  kcptun-linux-arm5-20230207.tar.gz
6d0fb4a9ff8678a06a473af6892701fb66d527df  kcptun-linux-arm6-20230207.tar.gz
6c07765bc4cfdcfc68c4d68fba885d0ec41da9c2  kcptun-linux-arm7-20230207.tar.gz
dd9f1cc947f64976ebbaf7608d10e0634ebef0ff  kcptun-linux-arm64-20230207.tar.gz
806147f1d607a593d2847811f3c49ea914bf5dba  kcptun-darwin-arm64-20230207.tar.gz
4600c9dc5b20415763af2e6b741015a61c7ab65e  kcptun-windows-arm64-20230207.tar.gz
917b9adb34bf657df7bf4f222483c1b029f426d9  kcptun-linux-mipsle-20230207.tar.gz
a0c6d2bbf4d9061675e669a77e4c104b8c578dee  kcptun-linux-mips-20230207.tar.gz

Add support for port-range dialer, randomized remote port

15 Oct 05:53
Compare
Choose a tag to compare

Add support for port-range dialer , port-range listener, try to specify:

client: --remoteaddr IP:minport-maxport
server: --listen IP:minport-maxport

eg:
client: --remoteaddr IP:3000-4000
server: --listen 0.0.0.0:3000-4000

to test the feature. The client will switch to next randomized port in port range automatically when a connection has expired by '-autoexpire'.

$ go version
go version go1.19.2 linux/amd64

$ date
Sat Oct 15 13:49:53 CST 2022

$ ./build-release.sh
Setting GO111MODULE to on
4b482941ebde8a59e18cd161704d04f0e9814c31  kcptun-linux-amd64-20221015.tar.gz
cbda6c87606355fd6c4f3af644cad1126ca98865  kcptun-darwin-amd64-20221015.tar.gz
8d6231fff71daa818fd064ee0e594f1bdc8891d1  kcptun-windows-amd64-20221015.tar.gz
5df9f4034d1aa8883f6a34a66e8f776a7a995956  kcptun-freebsd-amd64-20221015.tar.gz
7d8287daff5011bbffc5f1c04dbe73891780b913  kcptun-linux-386-20221015.tar.gz
b7afed2eec47fbc7ac268bdb555cced38bafce8f  kcptun-windows-386-20221015.tar.gz
d8691d7e769a312e19dd573a1c87d4dcb1b0b2cb  kcptun-darwin-arm64-20221015.tar.gz
f4dd3d350430f7579ba327654effe55015db6675  kcptun-linux-arm5-20221015.tar.gz
2f699c0d934814689dcccd257f1304e4668bff1d  kcptun-linux-arm6-20221015.tar.gz
2c6f35641c8afbed4da7e37fe83f7cef2c2b0cbd  kcptun-linux-arm7-20221015.tar.gz
23dfdd553264d3b4f7ff2353fbef970759e8cdc0  kcptun-linux-arm64-20221015.tar.gz
69354b75910a7489596dce18eaab612d89d2b9bd  kcptun-linux-mipsle-20221015.tar.gz
0b1d7870baf08b3739bbf96458ed26755346a3e2  kcptun-linux-mips-20221015.tar.gz