Package wgctrl enables control of WireGuard interfaces on multiple platforms.
Go to file
2023-04-29 10:42:21 -04:00
.builds FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
.github/workflows *: bump dependencies, Go 1.20 2023-04-29 10:40:11 -04:00
cmd/wgctrl wgtypes: add OpenBSD DeviceType, add String method 2019-05-15 18:38:58 -04:00
internal internal/windows: deadlock fix (#133) 2023-04-29 10:42:21 -04:00
wgtypes FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
.cibuild.sh FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
.gitignore .gitignore: ignore cmd/wgctrl/wgctrl 2018-07-24 17:54:32 -04:00
client_integration_test.go FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
client_test.go wgctrl: apply gofumpt 2021-12-07 17:25:15 -05:00
client.go *: use Go 1.13+ errors.Is instead of os.IsNotExist 2021-05-04 18:16:50 -04:00
CONTRIBUTING.md FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
doc.go FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
go.mod *: bump dependencies, Go 1.20 2023-04-29 10:40:11 -04:00
go.sum *: bump dependencies, Go 1.20 2023-04-29 10:40:11 -04:00
LICENSE.md FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
os_freebsd.go FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
os_linux.go all: add //go:build lines 2021-09-27 11:50:26 +02:00
os_openbsd.go all: add //go:build lines 2021-09-27 11:50:26 +02:00
os_userspace.go FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00
os_windows.go all: add //go:build lines 2021-09-27 11:50:26 +02:00
README.md FreeBSD kernel support (#128) 2022-11-04 09:57:56 -04:00

wgctrl Test Status Go Reference Go Report Card

Package wgctrl enables control of WireGuard devices on multiple platforms.

For more information on WireGuard, please see https://www.wireguard.com/.

MIT Licensed.

Overview

wgctrl can control multiple types of WireGuard devices, including:

  • Kernel module devices
    • Linux: via generic netlink
    • FreeBSD: via ioctl interface
    • OpenBSD: via ioctl interface (read-only)
    • Windows: via ioctl interface
  • Userspace devices via the userspace configuration protocol

As new operating systems add support for in-kernel WireGuard implementations, this package should also be extended to support those native implementations.

If you are aware of any efforts on this front, please file an issue.

This package implements WireGuard configuration protocol operations, enabling the configuration of existing WireGuard devices. Operations such as creating WireGuard devices, or applying IP addresses to those devices, are out of scope for this package.