Skip to content

Releases: database64128/swgp-go

v1.6.0 - UDP GSO & GRO 🚀

19 Oct 16:38
v1.6.0
0d39260
Compare
Choose a tag to compare

📝 Release Notes

This release is focused on performance and reliability improvements, with a significant uplift in throughput brought by UDP GSO & GRO.

Networking

  • Probe and enable UDP Generic Segmentation Offload (GSO) & Generic Receive Offload (GRO) automatically on Linux and Windows.
    • If you start to have connectivity problems after updating, try the new per-client/server "disableUDPGSO" and "disableUDPGRO" options to disable the feature, and open an issue.
  • Fixed an issue that could cause relay sessions to get stuck forever when sendmmsg(2) is used on Linux and NetBSD.
  • Improved socket address and control message handling.
  • Increased UDP socket buffer size to 7 MiB for improved performance.

General

  • Adjusted logger presets for increased efficiency.
  • Upgraded to Go 1.23.2.

📦 Packages

Filename Build type
swgp-go-v1.6.0-archlinux-x86-64-v2.tar.zst Go 1.23.2 w/ CGO
swgp-go-v1.6.0-archlinux-x86-64-v3.tar.zst Go 1.23.2 w/ CGO
swgp-go-v1.6.0-linux-arm64.tar.zst Go 1.23.2 w/o CGO
swgp-go-v1.6.0-linux-x86-64-v2.tar.zst Go 1.23.2 w/o CGO
swgp-go-v1.6.0-linux-x86-64-v3.tar.zst Go 1.23.2 w/o CGO
swgp-go-v1.6.0-macos-arm64.tar.zst Go 1.23.2 w/o CGO
swgp-go-v1.6.0-macos-x86-64-v3.tar.zst Go 1.23.2 w/o CGO
swgp-go-v1.6.0-windows-arm64.tar.zst Go 1.23.2 w/o CGO
swgp-go-v1.6.0-windows-x86-64-v2.tar.zst Go 1.23.2 w/o CGO
swgp-go-v1.6.0-windows-x86-64-v3.tar.zst Go 1.23.2 w/o CGO

© 2024 database64128

v1.5.0 - Practical Networking 🥅

28 Jan 08:36
v1.5.0
5bbf87a
Compare
Choose a tag to compare

📝 Release Notes

This release contains mostly quality-of-life improvements, and added a few more knobs here and there for advanced users.

Networking

  • Endpoint addresses are now resolved on session creation instead of on startup.
  • Support custom "network" (Go's address family preference) for listen and endpoint address resolution.
  • Support custom bind address on outgoing sockets.

Release

📦 Packages

Filename Build type
swgp-go-v1.5.0-archlinux-x86-64-v2.tar.zst Go 1.21 w/ CGO
swgp-go-v1.5.0-archlinux-x86-64-v3.tar.zst Go 1.21 w/ CGO
swgp-go-v1.5.0-linux-arm64.tar.zst Go 1.21 w/o CGO
swgp-go-v1.5.0-linux-x86-64-v2.tar.zst Go 1.21 w/o CGO
swgp-go-v1.5.0-linux-x86-64-v3.tar.zst Go 1.21 w/o CGO
swgp-go-v1.5.0-macos-arm64.tar.zst Go 1.21 w/o CGO
swgp-go-v1.5.0-macos-x86-64-v3.tar.zst Go 1.21 w/o CGO
swgp-go-v1.5.0-windows-arm64.tar.zst Go 1.21 w/o CGO
swgp-go-v1.5.0-windows-x86-64-v2.tar.zst Go 1.21 w/o CGO
swgp-go-v1.5.0-windows-x86-64-v3.tar.zst Go 1.21 w/o CGO

© 2024 database64128

v1.4.0 - Spring Update 🌷

29 Mar 15:06
v1.4.0
b099d7d
Compare
Choose a tag to compare

📝 Release Notes

This release contains mostly quality-of-life improvements, and added a few more knobs here and there for advanced users.

Networking

  • Refactored socket control functions.
  • Refactored UDP mmsg path to be allocation-free during use.
  • Opened up UDP mmsg path for NetBSD.
  • Extended PKTINFO support to macOS.
  • Added traffic class (DiffServ + ECN) support.
  • Added SO_USER_COOKIE support on FreeBSD.
  • Added a few UDP performance tuning knobs.

Other Improvements

  • All: Switched non-crypto RNG from math/rand to runtime.fastrand for performance.

📦 Packages

Filename Build type
swgp-go-v1.4.0-archlinux-x86-64-v2.tar.zst Go 1.20 w/ CGO
swgp-go-v1.4.0-archlinux-x86-64-v3.tar.zst Go 1.20 w/ CGO
swgp-go-v1.4.0-linux-arm64.tar.zst Go 1.20 w/o CGO
swgp-go-v1.4.0-linux-x86-64-v2.tar.zst Go 1.20 w/o CGO
swgp-go-v1.4.0-linux-x86-64-v3.tar.zst Go 1.20 w/o CGO
swgp-go-v1.4.0-windows-arm64.tar.zst Go 1.20 w/o CGO
swgp-go-v1.4.0-windows-x86-64-v2.tar.zst Go 1.20 w/o CGO
swgp-go-v1.4.0-windows-x86-64-v3.tar.zst Go 1.20 w/o CGO

© 2023 database64128

v1.3.1 - Patch Release 🛠️

17 Feb 10:17
v1.3.1
6d51de2
Compare
Choose a tag to compare

📝 Release Notes

  • Updated to Go 1.20.
  • Fixed broken client session timeout mechanism in sendmmsg path.
  • Other minor improvements.

📦 Packages

Filename Build type
swgp-go-v1.3.1-archlinux-x86-64-v2.tar.zst Go 1.20 w/ CGO
swgp-go-v1.3.1-archlinux-x86-64-v3.tar.zst Go 1.20 w/ CGO
swgp-go-v1.3.1-linux-arm64.tar.zst Go 1.20 w/o CGO
swgp-go-v1.3.1-linux-x86-64-v2.tar.zst Go 1.20 w/o CGO
swgp-go-v1.3.1-linux-x86-64-v3.tar.zst Go 1.20 w/o CGO
swgp-go-v1.3.1-windows-arm64.tar.zst Go 1.20 w/o CGO
swgp-go-v1.3.1-windows-x86-64-v2.tar.zst Go 1.20 w/o CGO
swgp-go-v1.3.1-windows-x86-64-v3.tar.zst Go 1.20 w/o CGO

© 2023 database64128

v1.3.0 - Halloween Update 🎃

26 Oct 08:00
v1.3.0
996e8fb
Compare
Choose a tag to compare

📝 Release Notes

⚠️ Breaking change: This release changed the names of the interfaces and peers fields in configuration. The new names are servers and clients. Make sure to update your configuration and use the new -testConf flag to test it before starting.

  • Config: Changed "interfaces" and "peers" to "servers" and "clients".
  • Config: Disallow unknown fields.
  • Overhauled pktinfo processing.
  • Added recvmmsg main receive routine.
  • Added -testConf flag to test config.

📦 Packages

Filename Build type
swgp-go-v1.3.0-archlinux-x86-64-v2.tar.zst Go 1.19 w/ CGO
swgp-go-v1.3.0-archlinux-x86-64-v3.tar.zst Go 1.19 w/ CGO
swgp-go-v1.3.0-linux-arm64.tar.zst Go 1.19 w/o CGO
swgp-go-v1.3.0-linux-x86-64-v2.tar.zst Go 1.19 w/o CGO
swgp-go-v1.3.0-linux-x86-64-v3.tar.zst Go 1.19 w/o CGO
swgp-go-v1.3.0-windows-arm64.tar.zst Go 1.19 w/o CGO
swgp-go-v1.3.0-windows-x86-64-v2.tar.zst Go 1.19 w/o CGO
swgp-go-v1.3.0-windows-x86-64-v3.tar.zst Go 1.19 w/o CGO

© 2022 database64128

v1.2.3 - Patch Release 🛠️

12 Sep 19:00
v1.2.3
0dd8a45
Compare
Choose a tag to compare

📝 Release Notes

  • More logging options.
  • Improved shutdown logic.
  • Fixed potential infinite loop in client uplink fast path.

🐛 Known Issues

  • 🎉 No known issues!

📦 Packages

Filename Build type
swgp-go-v1.2.3-archlinux-x86-64-v2.tar.zst Go 1.19 w/ CGO
swgp-go-v1.2.3-archlinux-x86-64-v3.tar.zst Go 1.19 w/ CGO
swgp-go-v1.2.3-linux-arm64.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.3-linux-x86-64-v2.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.3-linux-x86-64-v3.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.3-windows-arm64.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.3-windows-x86-64-v2.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.3-windows-x86-64-v3.tar.zst Go 1.19 w/o CGO

© 2022 database64128

v1.2.2 - Patch Release 🛠️

09 Aug 08:58
v1.2.2
86256f9
Compare
Choose a tag to compare

📝 Release Notes

  • Collect and print relay session stats
  • Reduce debug-level logging
  • Fix program exit code when missing -confPath
  • Update to Go 1.19

🐛 Known Issues

  • 🎉 No known issues!

📦 Packages

Filename Build type
swgp-go-v1.2.2-archlinux-x86-64-v2.tar.zst Go 1.19 w/ CGO
swgp-go-v1.2.2-archlinux-x86-64-v3.tar.zst Go 1.19 w/ CGO
swgp-go-v1.2.2-linux-arm64.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.2-linux-x86-64-v2.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.2-linux-x86-64-v3.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.2-windows-arm64.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.2-windows-x86-64-v2.tar.zst Go 1.19 w/o CGO
swgp-go-v1.2.2-windows-x86-64-v3.tar.zst Go 1.19 w/o CGO

© 2022 database64128

v1.2.1 - Patch Release 🛠️

14 Jul 07:35
v1.2.1
ce863c8
Compare
Choose a tag to compare

📝 Release Notes

  • Conn: On a failed sendmmsg(2) call, only drop the packet that caused the failure.
  • Service: Minor cleanup.

🐛 Known Issues

  • 🎉 No known issues!

📦 Packages

Filename Build type
swgp-go-v1.2.1-archlinux-x86-64-v2.tar.zst Go 1.18 w/ CGO
swgp-go-v1.2.1-archlinux-x86-64-v3.tar.zst Go 1.18 w/ CGO
swgp-go-v1.2.1-linux-arm64.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.1-linux-x86-64-v2.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.1-linux-x86-64-v3.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.1-windows-arm64.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.1-windows-x86-64-v2.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.1-windows-x86-64-v3.tar.zst Go 1.18 w/o CGO

© 2022 database64128

v1.2.0 - Protocol & Reliability Improvements 🦭

29 May 08:30
v1.2.0
1ddb677
Compare
Choose a tag to compare

📝 Release Notes

⚠️ This release has a breaking protocol change for the zero-overhead handler. If you use the zero-overhead proxy mode, make sure to upgrade your server and client at the same time.

  • Zero-overhead handler: Conceal all-zero MAC2 by using XChaCha20-Poly1305 to encrypt part of handshake packets. This is a breaking protocol change.
  • Service: Use NAT table lock to synchronize send channel closure. This simplifies locking and avoids panicking in an unlikely situation where the main loop writes to a closed send channel.

🐛 Known Issues

  • 🎉 No known issues!

📦 Packages

Filename Build type
swgp-go-v1.2.0-archlinux-x86-64-v2.tar.zst Go 1.18 w/ CGO
swgp-go-v1.2.0-archlinux-x86-64-v3.tar.zst Go 1.18 w/ CGO
swgp-go-v1.2.0-linux-arm64.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.0-linux-x86-64-v2.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.0-linux-x86-64-v3.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.0-windows-arm64.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.0-windows-x86-64-v2.tar.zst Go 1.18 w/o CGO
swgp-go-v1.2.0-windows-x86-64-v3.tar.zst Go 1.18 w/o CGO

© 2022 database64128

v1.1.2 - Patch Release 🛠️

25 May 15:37
v1.1.2
3a8f67e
Compare
Choose a tag to compare

📝 Release Notes

  • Service: Removed uplink pktinfo usage. This addresses the issue where existing sessions can no longer send outgoing packets when network changes.

🐛 Known Issues

  • 🎉 No known issues!

📦 Packages

Filename Build type
swgp-go-v1.1.2-archlinux-x86-64-v2.tar.zst Go 1.18 w/ CGO
swgp-go-v1.1.2-archlinux-x86-64-v3.tar.zst Go 1.18 w/ CGO
swgp-go-v1.1.2-linux-arm64.tar.zst Go 1.18 w/o CGO
swgp-go-v1.1.2-linux-x86-64-v2.tar.zst Go 1.18 w/o CGO
swgp-go-v1.1.2-linux-x86-64-v3.tar.zst Go 1.18 w/o CGO
swgp-go-v1.1.2-windows-arm64.tar.zst Go 1.18 w/o CGO
swgp-go-v1.1.2-windows-x86-64-v2.tar.zst Go 1.18 w/o CGO
swgp-go-v1.1.2-windows-x86-64-v3.tar.zst Go 1.18 w/o CGO

© 2022 database64128