Releases: database64128/swgp-go
v1.7.0 - Winter Update 🎄
📝 Release Notes
This is the end-of-year release with bug fixes and quality-of-life improvements. Happy holidays!
Service
- The listen "network" for outgoing sockets is now automatically determined based on the resolved endpoint address. Manual configuration on systems without dual-stack sockets is no longer required.
- Fixed an issue causing active client sessions to expire after 3 minutes.
Networking
- Fixed an issue preventing "udp6" listeners from starting on Windows.
General
- Added a
-version
flag to display version information. - Added request logging and a "listenNetwork" option for
pprof
. - Switched logger to
log/slog
fromgo.uber.org/zap
.
📦 Packages
Filename | Build type |
---|---|
swgp-go-v1.7.0-archlinux-x86-64-v2.tar.zst |
Go 1.23.4 w/ CGO |
swgp-go-v1.7.0-archlinux-x86-64-v3.tar.zst |
Go 1.23.4 w/ CGO |
swgp-go-v1.7.0-linux-arm64.tar.zst |
Go 1.23.4 w/o CGO |
swgp-go-v1.7.0-linux-x86-64-v2.tar.zst |
Go 1.23.4 w/o CGO |
swgp-go-v1.7.0-linux-x86-64-v3.tar.zst |
Go 1.23.4 w/o CGO |
swgp-go-v1.7.0-macos-arm64.tar.zst |
Go 1.23.4 w/o CGO |
swgp-go-v1.7.0-macos-x86-64-v3.tar.zst |
Go 1.23.4 w/o CGO |
swgp-go-v1.7.0-windows-arm64.tar.zst |
Go 1.23.4 w/o CGO |
swgp-go-v1.7.0-windows-x86-64-v2.tar.zst |
Go 1.23.4 w/o CGO |
swgp-go-v1.7.0-windows-x86-64-v3.tar.zst |
Go 1.23.4 w/o CGO |
© 2024 database64128
v1.6.0 - UDP GSO & GRO 🚀
📝 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.
- If you start to have connectivity problems after updating, try the new per-client/server
- 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 🥅
📝 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 🌷
📝 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
toruntime.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 🛠️
📝 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 🎃
📝 Release Notes
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 🛠️
📝 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 🛠️
📝 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 🛠️
📝 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 🦭
📝 Release Notes
- 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