kcptun

A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。N:M 多重化と FEC を備えた KCP に基づく安定した安全なトンネル。 N:M 다중화 및 FEC를 사용하는 KCP 기반의 안정적이고 안전한 터널입니다. Un tunnel stable et sécurisé basé sur KCP avec multiplexage N:M et FEC.

MIT License

Downloads
31
Stars
13.7K
Committers
19

Bot releases are hidden (Show)

kcptun - closeWait Latest Release

Published by xtaci 2 months ago

What's New?

  1. Added a closeWait(30 seconds) before terminating a connection pair, mitigating Firefox PR_END_OF_FILE_ERROR issue.

Building information

$ go version
go version go1.22.6 freebsd/amd64

$ date
Wed Aug  7 22:52:01 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
3f72da6f971dfe41cd019e41ff59fdbb9f6981f3  kcptun-linux-amd64-20240807.tar.gz
25041102d1eb13add5801cd431cd8710d0c3e940  kcptun-darwin-amd64-20240807.tar.gz
de9fcfebc1a087e8e97283a0fb817530b6b098b8  kcptun-windows-amd64-20240807.tar.gz
6fb05af5fcf4a4babb6d4628866a7c5112c69dac  kcptun-freebsd-amd64-20240807.tar.gz
0de85b27c73b3aef5e0c78c6d07346e75be8048a  kcptun-linux-386-20240807.tar.gz
760c734ecb068a6cfae64d338abea4a7437429e6  kcptun-windows-386-20240807.tar.gz
11c55c15c2db432f2962bebe84fd23adcc986d46  kcptun-linux-arm5-20240807.tar.gz
14cbd2f263524cd2387701a6804e0e9903807167  kcptun-linux-arm6-20240807.tar.gz
c6d54c7e4eaa1c9fef18ead20436ecd67ebb4655  kcptun-linux-arm7-20240807.tar.gz
e4da8a557aa479fc55e9c02bfbc3e5101198a43b  kcptun-linux-arm64-20240807.tar.gz
cb298cb34acc34516f17febaee8aaebec1039e92  kcptun-darwin-arm64-20240807.tar.gz
aedf54bc3cec6099e3345723bc4fd02a713b0aaf  kcptun-windows-arm64-20240807.tar.gz
e7b723c3e623209fddee5536ec9fa52870ecd4f3  kcptun-linux-mipsle-20240807.tar.gz
388f9a85b6a7d7a1cbe51fcc7ea6f919932ff45e  kcptun-linux-mips-20240807.tar.gz

What's Changed

Full Changelog: https://github.com/xtaci/kcptun/compare/v20240730...v20240807

kcptun - rebuild with well-organized code

Published by xtaci 3 months ago

What's New?

  1. 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.

  1. Build with well-organized codes.

IMPORTANT NOTE:

  1. To achieve Effective Quantum-Resistance,, specify at least 211 bytes in the -key parameter and ensure -QPPCount is no less than 7.

  2. Make sure -QPPCount is COPRIME(互素) to 8(or simply set to a PRIME number) like:
    101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199...

  3. Build with well-organized codes.

Building information

$ go version
go version go1.22.4 darwin/arm64

$ date
Tue Jul 30 14:31:08 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
8750afb50de0495bb433b212173818f2f345a4cb  kcptun-linux-amd64-20240730.tar.gz
89ac40c22e2fc818ed7827997d8d4de704ec5a8f  kcptun-darwin-amd64-20240730.tar.gz
d8e09ba5edd72f9373afcd138007fcd643a1daf9  kcptun-windows-amd64-20240730.tar.gz
1cd33e4850f8ada29fc2d8e5919f4fb1c51313a6  kcptun-freebsd-amd64-20240730.tar.gz
893c977790bb59a164987bc46e51b7c26b6ea042  kcptun-linux-386-20240730.tar.gz
7dbb7938be31ef9c3e5ae2075e424e8f8710d626  kcptun-windows-386-20240730.tar.gz
e4f816dd2823861afa1250bfa895fe78f9eb08ef  kcptun-linux-arm5-20240730.tar.gz
5f3a8ccace7091a2672e2318c230b8c2c964a361  kcptun-linux-arm6-20240730.tar.gz
2e68232e1a5800f82b21ab5cb95fa131eb845e60  kcptun-linux-arm7-20240730.tar.gz
e03a05c031889fc6cb386ee31695fe8091788267  kcptun-linux-arm64-20240730.tar.gz
381c4cbcbb42f31c6c2c3939d98d5d3039d01733  kcptun-darwin-arm64-20240730.tar.gz
09f70ce76d8451b3d1f98390aee8916b01d6bbdc  kcptun-windows-arm64-20240730.tar.gz
e6f4d862e145181e66fe9c11e053d0778e5ebb15  kcptun-linux-mipsle-20240730.tar.gz
b8151e56580a0bd67a933112111e5a49b25254f1  kcptun-linux-mips-20240730.tar.gz

New Contributors

Full Changelog: https://github.com/xtaci/kcptun/compare/v20240107...v20240730

kcptun - Use xoshiro256** in PRNG for better Chi Square

Published by xtaci 3 months ago

What's New?

  1. 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.

IMPORTANT NOTE:

  1. To achieve Effective Quantum-Resistance,, specify at least 211 bytes in the -key parameter and ensure -QPPCount is no less than 7.
  2. Make sure -QPPCount is COPRIME(互素) to 8(or simply set to a PRIME number) like:
    101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199...

Building information

$ go version
go version go1.22.5 linux/amd64

$ date
Tue Jul 16 14:12:26 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
34827e04ea4e792857c4e4f6948f95cd5ae4463c  kcptun-linux-amd64-20240716.tar.gz
d52e43b22d83018f51ba76e6ad2b4b5d46e2befe  kcptun-darwin-amd64-20240716.tar.gz
dd8ab4c0831a32c9e4a5b70707932ac69879c115  kcptun-windows-amd64-20240716.tar.gz
e4dd4e1a670593ea2ede7ca0249d0c64fcb131c0  kcptun-freebsd-amd64-20240716.tar.gz
176e54e844bcb489aac8e1995d9eb5f9f8673418  kcptun-linux-386-20240716.tar.gz
61dfea4805974c2f1382eed99796b67fcb37b443  kcptun-windows-386-20240716.tar.gz
dfaf3d007269fa5f3d3e80f2f7c8761d3712d97d  kcptun-linux-arm5-20240716.tar.gz
38fe9314f40eef20bdb06f09d406768ffc052399  kcptun-linux-arm6-20240716.tar.gz
45008f7d1cec66b982a2db24e92634ac7e3e0d5d  kcptun-linux-arm7-20240716.tar.gz
23a399c1c66ab2b3e63ed6e02701dcee9f142ae3  kcptun-linux-arm64-20240716.tar.gz
21faefafe2299d9cbcce1abdf837f5e5e7498b61  kcptun-darwin-arm64-20240716.tar.gz
c40f2b34df07bfbc769ab2c8f5e2bc27080d9741  kcptun-windows-arm64-20240716.tar.gz
30d0845b70dbb2a60d1e0a80c0b9c0c61b2c5a15  kcptun-linux-mipsle-20240716.tar.gz
51ce1223a24d85aeb08c7d0e89da478f6185c097  kcptun-linux-mips-20240716.tar.gz

New Contributors

Full Changelog: https://github.com/xtaci/kcptun/compare/v20240107...v20240716

kcptun - Quantum Permutation Pads(256!)

Published by xtaci 3 months ago

What's New?

  1. 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 number of pads to use for QPP: The more pads you use, the more secure the encryption. Each pad requires 256 bytes. (default: 64)

Your could also specify

     "qpp":true,
     "qpp-count":64,

in your client and server side json file. These 2 parameters must be identical on both sides.

  1. Bump golang.org/x/net from 0.19.0 to 0.23.0 by @dependabot in https://github.com/xtaci/kcptun/pull/944
  2. Added github workflow for docker and dependabot by @itspooya in https://github.com/xtaci/kcptun/pull/946

IMPORTANT NOTE:

  1. To achieve Effective Quantum-Resistance,, specify at least 211 bytes in the -key parameter and ensure -QPPCount is no less than 7.

Building information

$ go version
go version go1.22.5 linux/amd64

$ date
Sat Jul 13 21:12:49 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
70e2f24fa3b2bea1905e2a516afbee45792339dc  kcptun-linux-amd64-20240713.tar.gz
18003ce19f10fc1648512a07b21f82853d21c2af  kcptun-darwin-amd64-20240713.tar.gz
0bafa8e1690c55ae29b1323daddcc3615e1428cb  kcptun-windows-amd64-20240713.tar.gz
be6f65330310bc9c343421a946459c15db05e865  kcptun-freebsd-amd64-20240713.tar.gz
676597439d9cb9be8d25e70ea38e9e7506920cf9  kcptun-linux-386-20240713.tar.gz
ca61d01ef79f73a90a68afeee304bfdc698faaad  kcptun-windows-386-20240713.tar.gz
11add80f8e611277423af74361a9a5b495e74418  kcptun-linux-arm5-20240713.tar.gz
72badb87ad290f7ba6ca88cd4b0c752352280b33  kcptun-linux-arm6-20240713.tar.gz
8f06ce8682e8f74ad0151cac33a877da0f0e415a  kcptun-linux-arm7-20240713.tar.gz
9d14ec9f8afd0e520b59c2841885667292a1eb16  kcptun-linux-arm64-20240713.tar.gz
6237f8a5de5d25bb0917464b50ae0f9d519638c8  kcptun-darwin-arm64-20240713.tar.gz
eaf9235b6c1e3712a9daa2e1e5f35451f583036a  kcptun-windows-arm64-20240713.tar.gz
fc98d69741f19f85c11925152ca6cb48308a8076  kcptun-linux-mipsle-20240713.tar.gz
c89bf32ed85b01fd0665127415e1fabce12f6d1c  kcptun-linux-mips-20240713.tar.gz

New Contributors

kcptun - Quantum Permutation Pads(256!) -- Quantum Resistance

Published by xtaci 3 months ago

What's New?

  1. 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 number of pads to use for QPP: The more pads you use, the more secure the encryption. Each pad requires 256 bytes. (default: 64)

Your could also specify

     "qpp":true,
     "qpp-count":64,

in your client and server side json file. These 2 parameters must be identical on both sides.

  1. Bump golang.org/x/net from 0.19.0 to 0.23.0 by @dependabot in https://github.com/xtaci/kcptun/pull/944
  2. Added github workflow for docker and dependabot by @itspooya in https://github.com/xtaci/kcptun/pull/946

IMPORTANT NOTE:

  1. To achieve Effective Quantum-Resistance,, specify at least 211 bytes in the -key parameter and ensure -QPPCount is no less than 7.

Building information

$ go version
go version go1.22.5 linux/amd64

$ date
Sat Jul  6 14:40:19 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
6d5fa3fa3bfbfb4c19530819dfb2f6a1ab6ef1fa  kcptun-linux-amd64-20240706.tar.gz
f9b462d7f592de76e689b9bdb098a2a4c07fc1a5  kcptun-darwin-amd64-20240706.tar.gz
990a27962a322988d9bb5ef5f530b6df5e7bd7e5  kcptun-windows-amd64-20240706.tar.gz
6d133dae88851aa5b34398db0b27f8e5b5945813  kcptun-freebsd-amd64-20240706.tar.gz
f7aa4b569ed0764772cfd06b7c231c2811812f15  kcptun-linux-386-20240706.tar.gz
800e7e0a96c9e78c73dd8b663f75fa1394da8ad0  kcptun-windows-386-20240706.tar.gz
1cd66d46c299fcd3768a078f20f60062285864e7  kcptun-linux-arm5-20240706.tar.gz
7e30b789b217e53736a5858b6fc4644b6c62217c  kcptun-linux-arm6-20240706.tar.gz
c9efb988881ccda57dbb943ea4949115239723d9  kcptun-linux-arm7-20240706.tar.gz
da5f3cb77eb46ec5aa1d918b85a190cda7edb904  kcptun-linux-arm64-20240706.tar.gz
7a3f55622c9f1fefa528febc1d90c2cf0d9d630c  kcptun-darwin-arm64-20240706.tar.gz
4a233660b68391172d2bc0e79c1c07cf2f79b571  kcptun-windows-arm64-20240706.tar.gz
914a6ad46ebca298a2e0e6bc68080774dcb21f90  kcptun-linux-mipsle-20240706.tar.gz
52fde87d383249b6ce4efb1571ba1b4eeed287fc  kcptun-linux-mips-20240706.tar.gz

New Contributors

kcptun - Quantum Permutation Pads(256!) Faster

Published by xtaci 4 months ago

What's New?

  1. 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 number of pads to use for QPP: The more pads you use, the more secure the encryption. Each pad requires 256 bytes. (default: 64)

Your could also specify

     "qpp":true,
     "qpp-count":64,

in your client and server side json file. These 2 parameters must be identical on both sides.

  1. Bump golang.org/x/net from 0.19.0 to 0.23.0 by @dependabot in https://github.com/xtaci/kcptun/pull/944
  2. Added github workflow for docker and dependabot by @itspooya in https://github.com/xtaci/kcptun/pull/946

IMPORTANT NOTE:

  1. To achieve Effective Quantum-Resistance,, specify at least 211 bytes in the -key parameter and ensure -QPPCount is no less than 8.

Building information

$ go version
go version go1.22.4 linux/amd64

$ date
Fri Jul  5 11:17:03 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
d1fa183b10a3b08ad0ea9069586f836f3f06bf8b  kcptun-linux-amd64-20240705.tar.gz
4e303f5b89da7f6732aa1f92e0cbb847a6702757  kcptun-darwin-amd64-20240705.tar.gz
953d5c9e9a32d872949cd9a3aa14872c4d86d734  kcptun-windows-amd64-20240705.tar.gz
fa90281a317a30abb6a70ad0ecb2948e859e6af7  kcptun-freebsd-amd64-20240705.tar.gz
043747c05e9f5f05567d4b701f61634124f2c8b5  kcptun-linux-386-20240705.tar.gz
88c09217f4b5d03a12b6c9aec796babe486a6c97  kcptun-windows-386-20240705.tar.gz
8413d03865fc83f75d0cd0f9c19ae79bd0f72103  kcptun-linux-arm5-20240705.tar.gz
5b8c1ec6d4bc1a361b8d815c07defbd49d4546c2  kcptun-linux-arm6-20240705.tar.gz
05ca52e4033fb4736284497bc6cbdcff3ab4bc38  kcptun-linux-arm7-20240705.tar.gz
3d4ab819b0da63fa1c2ff5d0d94c0b5f10e90bc1  kcptun-linux-arm64-20240705.tar.gz
bb0b8675639a04c9d386b0dacb38229a38633433  kcptun-darwin-arm64-20240705.tar.gz
37bf89a76fbfffb56be8c58f8d4ba16bf2f4340b  kcptun-windows-arm64-20240705.tar.gz
928e8ff573421cf1850f377b1451ec636a7b9415  kcptun-linux-mipsle-20240705.tar.gz
f5a7f101279553c9bf0c26080bcf96383ad909eb  kcptun-linux-mips-20240705.tar.gz

New Contributors

kcptun - Quantum Permutation Pads(256!)

Published by xtaci 4 months ago

What's New?

  1. Support for Quantum Permutation Pad for quantum-resistent communication, based on the implementation in https://github.com/xtaci/qpp .
   --QPP                Enable Quantum Permutation Pad for universal quantum-safe cryptography, based on classic cryptography
   --QPPCount value     Number of pads to use for QPP, the more the pads, the more secure, one pad costs 256 bytes (default: 64)

Your could also specify

     "qpp":true,
     "qpp-count":64,

in your client and server side json file. These 2 parameters must be identical on both sides.

  1. Bump golang.org/x/net from 0.19.0 to 0.23.0 by @dependabot in https://github.com/xtaci/kcptun/pull/944
  2. Added github workflow for docker and dependabot by @itspooya in https://github.com/xtaci/kcptun/pull/946

IMPORTANT NOTE:

  1. To achieve Effective Quantum-Resistance,, specify at least 211 bytes in the -key parameter and ensure -QPPCount is no less than 8.

Building information

$ go version
go version go1.22.4 darwin/arm64

$ date
Wed Jul  3 15:39:31 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
7696f6e3def9fec23836d8046e174e80348a1003  kcptun-linux-amd64-20240703.tar.gz
f5fe6a9f102afa4fc7e2578dda834001dee66a4c  kcptun-darwin-amd64-20240703.tar.gz
c1a6471fcdd274899f3a23d3b12be89b34c2f95b  kcptun-windows-amd64-20240703.tar.gz
73964764eae46de282e1d580b9e7de11957c892e  kcptun-freebsd-amd64-20240703.tar.gz
a438e74587ee5d80b9990a2c2a892ab675ef6732  kcptun-linux-386-20240703.tar.gz
bb2dfaf0faeadb6ce312c52c7e82103f89614345  kcptun-windows-386-20240703.tar.gz
6447122db722588e3d5cb6afcfc116475298583e  kcptun-linux-arm5-20240703.tar.gz
531a81e05fe86f806ca4ffc63525a3c0393a1fe8  kcptun-linux-arm6-20240703.tar.gz
1b4e744c4eb9b5864f08ceddcdc27375b0545280  kcptun-linux-arm7-20240703.tar.gz
839a0fd804a219af37fb4719baad73200916d9f6  kcptun-linux-arm64-20240703.tar.gz
58e086ceb0a734a22b1d4781a7d573d468876243  kcptun-darwin-arm64-20240703.tar.gz
a6a58ca4015d02553f432acf08c65c73f731b1a3  kcptun-windows-arm64-20240703.tar.gz
a4895182bd24a06e139ae53c7fc79895bdf0bcf5  kcptun-linux-mipsle-20240703.tar.gz
9ad41aa936d06ae7de720b901df2cbd23c13df0d  kcptun-linux-mips-20240703.tar.gz

New Contributors

kcptun - Quantum Permutation Pads(updated)

Published by xtaci 4 months ago

What's New?

  1. Support for Quantum Permutation Pad for quantum-resistent communication, based on the implementation in https://github.com/xtaci/qpp .
   --QPP                Enable Quantum Permutation Pad for universal quantum-safe cryptography, based on classic cryptography
   --QPPCount value     Number of pads to use for QPP, the more the pads, the more secure, one pad costs 256 bytes (default: 64)

Your could also specify

     "qpp":true,
     "qpp-count":64,

in your client and server side json file. These 2 parameters must be identical on both sides.

NOTE: It's better to encrypt the message aforehand before tranferring via kcptun if QPP enabled, like making use of HTTPS/TLS/SSL.

  1. Bump golang.org/x/net from 0.19.0 to 0.23.0 by @dependabot in https://github.com/xtaci/kcptun/pull/944
  2. Added github workflow for docker and dependabot by @itspooya in https://github.com/xtaci/kcptun/pull/946

Building information

$ go version
go version go1.22.4 linux/amd64

$ date
Tue Jul  2 20:26:33 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
90f8707e38d6b2d5b01389523a9624a0b965036a  kcptun-linux-amd64-20240702.tar.gz
b91eae2f06f49e432e4284957d632476e0fb8678  kcptun-darwin-amd64-20240702.tar.gz
186b15fc332b05105a017d37e5d26cff0c03b74f  kcptun-windows-amd64-20240702.tar.gz
7c8c7a81bd8b0d0ef3b9d5c91a9705c4c0b4914b  kcptun-freebsd-amd64-20240702.tar.gz
30951317273477a167c73802d93e123fc3da5bc2  kcptun-linux-386-20240702.tar.gz
7de49fddff9ba0948fa392e56a119c416c1bec95  kcptun-windows-386-20240702.tar.gz
5175c31247cda8a9ae946c929ac4cf932737d7b7  kcptun-linux-arm5-20240702.tar.gz
9026c89b8c3d0fed80b3ece62c5a416bcc6416a2  kcptun-linux-arm6-20240702.tar.gz
7b30b83ea712330f8499eecf8d711d0968260c9d  kcptun-linux-arm7-20240702.tar.gz
e335e08a2b96e91e8ab333e18c95f277955f4a70  kcptun-linux-arm64-20240702.tar.gz
982b61ed7bff97b0e576b817ddf1baaeaf1f1161  kcptun-darwin-arm64-20240702.tar.gz
2eacf1f2a7bdf244456bd0ed881df1da811a58b1  kcptun-windows-arm64-20240702.tar.gz
2ea6ad5623089478200c585a0ab07ff1e6c9b9b5  kcptun-linux-mipsle-20240702.tar.gz
8732e12fae619c39fd83aee7a8b2038146e64d57  kcptun-linux-mips-20240702.tar.gz

New Contributors

kcptun - Quantum Permutation Pads

Published by xtaci 4 months ago

What's New?

  1. Support for Quantum Permutation Pad for quantum-resistent communication, based on the implementation in https://github.com/xtaci/qpp .
   --QPP                Enable Quantum Permutation Pad for universal quantum-safe cryptography, based on classic cryptography
   --QPPCount value     Number of pads to use for QPP, the more the pads, the more secure, one pad costs 256 bytes (default: 64)

Your could also specify

     "qpp":true,
     "qpp-count":64,

in your client and server side json file. These 2 parameters must be identical on both sides.

  1. Bump golang.org/x/net from 0.19.0 to 0.23.0 by @dependabot in https://github.com/xtaci/kcptun/pull/944
  2. Added github workflow for docker and dependabot by @itspooya in https://github.com/xtaci/kcptun/pull/946

Building information

$ go version
go version go1.22.4 linux/amd64

$ date
Tue Jul  2 03:31:05 CST 2024

$ ./build-release.sh
Setting GO111MODULE to on
d64c7dbc5409e857d8bad64df9d43a7682f7582d  kcptun-linux-amd64-20240701.tar.gz
ed2cf09ff137472839c270c5d9006bf5220144b4  kcptun-darwin-amd64-20240701.tar.gz
8e20c219b56ed3e2ad2f62a024291f30c88a266b  kcptun-windows-amd64-20240701.tar.gz
abfc6b88b7efcc7feb0c72a37b6f9a96c2884615  kcptun-freebsd-amd64-20240701.tar.gz
d4711bf60b96f600ee6ce89b3a6f93f4737a8409  kcptun-linux-386-20240701.tar.gz
4c98c168538bd2051eb6e39b4c40c9ef1b346773  kcptun-windows-386-20240701.tar.gz
93d46b0853679642147bc1f6c583df2cf44643e6  kcptun-linux-arm5-20240701.tar.gz
e4baeb7ff1ed0ff38e60d9c9bd9e210b3902129c  kcptun-linux-arm6-20240701.tar.gz
101bba137be263a4b6bd557430d7ca63b17097c8  kcptun-linux-arm7-20240701.tar.gz
eb53e696861215e99f6dccb22e0d698335bdb2e1  kcptun-linux-arm64-20240701.tar.gz
a65e6895a9f267a20b57da8664fe83d17bc8ffff  kcptun-darwin-arm64-20240701.tar.gz
6edf81a06775bd0b65b8b1addaa3c95a817c153f  kcptun-windows-arm64-20240701.tar.gz
5ab1ea0a7993049926d7950a829b473c9ab4beaa  kcptun-linux-mipsle-20240701.tar.gz
1fbb04865bf6312708aea62c9fb94dcbd92ef332  kcptun-linux-mips-20240701.tar.gz

New Contributors

kcptun - Profile-guided optimization on client

Published by xtaci 10 months ago

  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
kcptun - a bug fix in fec auto tuning

Published by xtaci about 1 year ago

  1. fixed a bug in fec tuning when fec parameters on client & server side are set differently. https://github.com/xtaci/kcp-go/commit/ceebe176cf593cba40f9713145be0dec3c1ff625

$ 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
kcptun - go1.21 rebuild

Published by xtaci about 1 year ago

  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
kcptun - Fixed a bug that in rare case kcptun will hang

Published by xtaci over 1 year ago

  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
kcptun - possible bugfix in smux

Published by xtaci over 1 year ago

  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
kcptun - Add support for port-range dialer, randomized remote port

Published by xtaci about 2 years ago

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
kcptun - Recompiled with golang 1.18.3

Published by xtaci over 2 years ago

  1. Recompiled with golang 1.18.3
  2. Deps Updated
  3. Added missing vendor files
$ go version
go version go1.18.3 linux/amd64

$ date
Mon Jun 27 22:05:11 CST 2022

$ ./build-release.sh
Setting GO111MODULE to on
2c3793aafa5dd7ab3cccfc61fbe22a2677da26cf  kcptun-linux-amd64-20220628.tar.gz
7fe5a3a2218b9ca7c4ca69a0440f62a68c539089  kcptun-darwin-amd64-20220628.tar.gz
691aaa4070a6908834d7471569d7938d7af22277  kcptun-windows-amd64-20220628.tar.gz
57d414098d41778ccb901b1f62c37948583abf50  kcptun-freebsd-amd64-20220628.tar.gz
73ac8c15245515dfcbc01e3d1d90388c3877b47d  kcptun-linux-386-20220628.tar.gz
7de19bad0ad15a6f61b9051af86a74edf9dee10c  kcptun-windows-386-20220628.tar.gz
58f2f166c94d60d0bca34192c595c176b44dca24  kcptun-darwin-arm64-20220628.tar.gz
cd881ecc3b8aef6a97bc5e351fad6f95a0c16d1f  kcptun-linux-arm5-20220628.tar.gz
1af3acd78c900e90390a3e9c1ff896d8dd55cdef  kcptun-linux-arm6-20220628.tar.gz
6faf770aa6970f928b21bf38e00e90eac4273b88  kcptun-linux-arm7-20220628.tar.gz
915c27ba5b1a589f4e93c509777b373ee99b7984  kcptun-linux-arm64-20220628.tar.gz
6b6085fc021cbeb94b460d772f171a150621021c  kcptun-linux-mipsle-20220628.tar.gz
30758b70d3ac44aebc8a361173def20ed58f9d67  kcptun-linux-mips-20220628.tar.gz
kcptun - Recompiled with golang 1.18.3

Published by xtaci over 2 years ago

  1. Recompiled with golang 1.18.3
  2. Deps Updated
$ go version
go version go1.18.3 linux/amd64

$ date
Mon Jun 27 22:05:11 CST 2022

$ ./build-release.sh
Setting GO111MODULE to on
010eefef5ddad8733f53ec8bb3e7a9d1bfc890ed  kcptun-linux-amd64-20220627.tar.gz
af40a179049330fc9e76b3fe51eef4d365d5be4e  kcptun-darwin-amd64-20220627.tar.gz
4e8e62c6a4b43acd73b69665e88f37d2372d6362  kcptun-windows-amd64-20220627.tar.gz
7bbdefca3c4b833df3d7e3d85fd1109673ae8a61  kcptun-freebsd-amd64-20220627.tar.gz
dadd03cacb4e6d17e58878acfcf202d96849e755  kcptun-linux-386-20220627.tar.gz
ef8619f0e6aadc48dcace09692af2cd9aec4fe2a  kcptun-windows-386-20220627.tar.gz
9237640f4551cbbf548445fd31699e47ee32c6f0  kcptun-darwin-arm64-20220627.tar.gz
f3b96825d5cfb026b301726a22e2f571ed0c862c  kcptun-linux-arm5-20220627.tar.gz
f13275ebf465cf4a01fc379e9817c3b702379fdc  kcptun-linux-arm6-20220627.tar.gz
1ed4e05932abf7d8ede36361b7163de9794df2db  kcptun-linux-arm7-20220627.tar.gz
c89972dea6f44ba42287be0602ab8111c4af667c  kcptun-linux-arm64-20220627.tar.gz
befcebca293c830bd2f00d9f99493fecc5bab6c4  kcptun-linux-mipsle-20220627.tar.gz
65536e75c05499e3e9dcb329ff6a0da51fd40a27  kcptun-linux-mips-20220627.tar.gz
kcptun - Bugfix in smux and Recompiled with go1.17

Published by xtaci about 3 years ago

  1. Recompiled with golang 1.17.1
  2. Bugfix in smux https://github.com/xtaci/smux/commit/09e2c01560df5aaaed50e48e77547858e2623498, which affects BIG data transfer.
$ go version
go version go1.17.1 linux/amd64

$ date
Wed Sep 22 21:48:58 CST 2021

$ ./build-release.sh
Setting GO111MODULE to on
2b39996bb12942f1a407723f1811b834ad9e625b  kcptun-linux-amd64-20210922.tar.gz
5ea39528d799d872f533cf1466d350ab630957db  kcptun-darwin-amd64-20210922.tar.gz
68b7ee324cc03497618533f7a0358c481e3de3f0  kcptun-windows-amd64-20210922.tar.gz
cc00da66eb533132d9e8fc87fec050ddc43e3492  kcptun-freebsd-amd64-20210922.tar.gz
3a94c60a7d348a95dc380697f836fb1888363166  kcptun-linux-386-20210922.tar.gz
d15d3262cbbcabdce7e121452787b52a5c141cf3  kcptun-windows-386-20210922.tar.gz
628231e42a8d2f17b2d0b37197fc67261835306c  kcptun-darwin-arm64-20210922.tar.gz
a02943e8127950f470a2b8175fd6e5cf9f0ec4e1  kcptun-linux-arm5-20210922.tar.gz
d41bf8b68e8266996596bf54d252477c0075ac85  kcptun-linux-arm6-20210922.tar.gz
f9ce33286925318339d0fbc2acd9c8c11414444f  kcptun-linux-arm7-20210922.tar.gz
4d58165e35206531b6282cb202a566e94a3747ee  kcptun-linux-arm64-20210922.tar.gz
22cf706774063ddf0c0bb8107128cf66eb8bb3c6  kcptun-linux-mipsle-20210922.tar.gz
dcb65e38c61454de2dbf97a12bbb807a6b55e128  kcptun-linux-mips-20210922.tar.gz
kcptun - Recompiled with go1.16.5 and Add Release binary for Apple M1

Published by xtaci over 3 years ago

  1. Recompiled with golang 1.16.5
  2. Add Release for Apple M1 (darwin-arm64)
$ go version
go version go1.16.5 linux/amd64

$ date
Thu Jun 24 11:48:34 CST 2021

╰─$ ./build-release.sh
Setting GO111MODULE to on
2656cd28cb4e9aabe2a5cbf6e2805c3ef693ca69  kcptun-linux-amd64-20210624.tar.gz
c7e9f3280f1decee02de2cc0b5b7408993bbc279  kcptun-darwin-amd64-20210624.tar.gz
5a642aa6f7311b46d1fff5eed35167d330b967d6  kcptun-windows-amd64-20210624.tar.gz
ec473cdaa2e150e3322790ce6f0937c8cc8c4c56  kcptun-freebsd-amd64-20210624.tar.gz
e83edf0da02f0010826ab8e420d555a21ac36441  kcptun-linux-386-20210624.tar.gz
df4403f8899dfbfd08adafe77c965f62fc76931d  kcptun-windows-386-20210624.tar.gz
df8e48dd2bef6a803d51324ba89cbd2a006c8982  kcptun-darwin-arm64-20210624.tar.gz
4ba5e1917de8642a8e9c20314c55f9967d10ceaa  kcptun-linux-arm5-20210624.tar.gz
955f36d5dbabfaf50fb1cdf1613f06f45e6e4b80  kcptun-linux-arm6-20210624.tar.gz
2450cd5eeabad16e5c50a3c866c3fa3b55ec5ced  kcptun-linux-arm7-20210624.tar.gz
fe39a6945846b97f1e9917e1ec77d3313502f31a  kcptun-linux-arm64-20210624.tar.gz
402c182c051da98f2667859af8b6e99396629cdc  kcptun-linux-mipsle-20210624.tar.gz
a30f57644d4eda6d892e6c901bc5e952800709cf  kcptun-linux-mips-20210624.tar.gz
kcptun - Minor changes

Published by xtaci almost 4 years ago

  1. Recompiled with golang 1.15.6
  2. Lazy re-/connection for KCP connection.
  3. Smaller binaries.
$ go version
go version go1.15.6 linux/amd64

$ date
Sun Jan  3 21:02:22 CST 2021

╰─$ ./build-release.sh
Setting GO111MODULE to on
31ced1ecd7adefdc62d1f311e88d9d307c229dc8  kcptun-linux-amd64-20210103.tar.gz
ed1fc4c033ba4a0801540d8a0ab952f5c9c43e07  kcptun-darwin-amd64-20210103.tar.gz
5827b8245fe93717f13fc93d7f0054cbd872ec0b  kcptun-windows-amd64-20210103.tar.gz
8fe5ff5468218589555adcfcf61b8f976f8b7eb0  kcptun-freebsd-amd64-20210103.tar.gz
25ce9bdb69ef07439a00f31c9770e920dc8f5050  kcptun-linux-386-20210103.tar.gz
f79a24ffc546c910250af37bc70e587dd04995a9  kcptun-windows-386-20210103.tar.gz
30ee741a0b5a9714b6d8f5c6e73d0d93ab4fca21  kcptun-linux-arm5-20210103.tar.gz
369f7de90f2089d63823dbd34b89526cc56a5f4d  kcptun-linux-arm6-20210103.tar.gz
e155a40660adcf8dc42ee7e0af941e9565435309  kcptun-linux-arm7-20210103.tar.gz
fef783627813f1ca7a9a0932a3d8b65a2d2d2f8c  kcptun-linux-arm64-20210103.tar.gz
ba60ead627547ddc16bf8c5ed7e93c0e417f8bae  kcptun-linux-mipsle-20210103.tar.gz
f87fb350b5f4d9fe9740d18873d8224c920da46e  kcptun-linux-mips-20210103.tar.gz