assets | ||
cmd | ||
init | ||
third_party | ||
tools/pidof | ||
vendor | ||
wgquick | ||
.gitignore | ||
.gitmodules | ||
.goreleaser.yml | ||
.woodpecker.yml | ||
go.mod | ||
go.sum | ||
LICENSE | ||
logo.png | ||
main.go | ||
Makefile | ||
README.md |
wg-quick like library with batteries included
This is a friendly fork of wg-quick-go. So all glory to them!!!11!! It contains everything needed to get a system into a wireguard vpn network. If there is no wireguard kernel modul available, it will spin up the embedded wireguard-go to create a wireguard interface.
Installation
Prebuild packages
Get these on the release page.
Homebrew
brew tap xsteadfastx/tap https://github.com/xsteadfastx/homebrew-tap
brew install wg-quicker
Compile it for yourself
git clone https://git.xsfx.dev/xsteadfastx/wg-quicker.git
cd wg-quicker
make build
Roadmap
- full wg-quick feature parity
- PreUp
- PostUp
- PreDown
- PostDown
- DNS
- MTU
- Save --> Use MarshallText interface to save config
- Sync
- Up
- Down
- MarshallText
- UnmarshallText
- Minimal test
- Embedded wireguard-go
- Integration tests ((TODO; have some virtual machines/kvm and wreck havoc :) ))
Caveats
- Endpoints DNS MarshallText is unsupported
- Pre/Post Up/Down doesn't support escaped
%i
, that is all%i
are expanded to interface name. - SaveConfig in config is only a placeholder (( since there's no reading/writing from files )). Use Unmarshall/Marshall Text to save/load config (( you're responsible for IO)).