This version adds experimental support to run snx-rs on macOS, on both Apple Silicon and Intel.
Networking is implemented using native macOS APIs (utun, PF_ROUTE routing sockets, SystemConfiguration, Keychain) instead of shelling out to external tools, the same approach used on Linux and Windows.
Distributed as a .dmg (GUI app bundle) and a .pkg (CLI plus a launchd service); binaries are ad-hoc signed and not notarized yet.
- IPsec uses a userspace TUN/ESP transport, same as on Windows, since macOS has no kernel xfrm module.
- Split DNS is implemented via SystemConfiguration (SCDynamicStore) scoped/supplemental match domains.
- The
snx-rs-guifrontend runs on macOS: a native menu-bar tray built with thetray-iconcrate, using template icons that follow the system appearance, and an embedded WebKit view for the Mobile Access portal login. - Added macOS packaging: a
.dmgwith the GUI app bundle and a.pkginstallingsnx-rs/snxctlwith a launchd LaunchDaemon (com.github.snx-rs). Ad-hoc signed only, not notarized yet.
Bugfixes:
- Fixed a problem with status window flickering, position and auto-resizing.
- Fixed a bug where the language selection dropdown was cut off.