Skip to content

WantasticApp/wantasticd

 
 

Repository files navigation

wantasticd

Wantastic Networking Daemon — a lightweight, cross-platform WireGuard-based mesh networking agent.

Stars Release License Platforms


What is wantasticd?

wantasticd is the agent daemon for the Wantastic overlay network. It uses a WireGuard-based protocol to create secure, high-performance peer-to-peer tunnels between devices — across NAT, firewalls, and heterogeneous networks.

It runs as a system service on Linux (systemd, procd/OpenWrt, OpenRC, SysV, BusyBox), macOS (launchd), and Windows.


Performance

Wantasticd uses a Userspace Hybrid Netstack — combining a Go userspace WireGuard implementation with kernel-bypass techniques for maximum throughput.

Scenario Throughput
Local loopback (P2P) ~10 Gbps
LAN peer-to-peer ~2–5 Gbps
WAN / cloud relay Limited by ISP uplink

See the full P2P Performance Benchmarks for detailed results.


P2P

Wantasticd establishes direct peer-to-peer tunnels whenever possible, falling back to relay only when both peers are behind symmetric NAT. The P2P path uses:

  • ICE-like hole punching through NAT
  • WireGuard encryption end-to-end
  • Persistent keepalive for connection stability on embedded/mobile networks
  • Automatic reconnect managed by the system service

To run the P2P end-to-end test suite:

./e2e/run_p2p_test.sh

Installation

Linux & macOS — one-liner

curl -sSL https://get.wantastic.app/install.sh | sh

The installer automatically:

  • Detects your OS and architecture (linux/amd64, arm64, arm, mips, riscv64, ppc64le, ...)
  • Remounts read-only filesystems (OpenWrt)
  • Adds reliable DNS if needed
  • Installs the binary to /usr/bin/wantasticd or /usr/local/bin/wantasticd
  • Registers and starts a system service (systemd / procd / OpenRC / SysV / BusyBox / launchd)

Windows

Open PowerShell as Administrator:

irm https://get.wantastic.app/install.ps1 | iex

Authentication

After installation the agent needs credentials in /etc/wantastic to connect. There are three ways to authenticate:

1. Interactive browser login

curl -sSL https://get.wantastic.app/install.sh | sh -s -- --login

Or after install:

wantasticd login

Opens console.wantastic.app in your browser. After you approve, the config is written to /etc/wantastic automatically.


2. Token login (headless / automated)

Ideal for CI pipelines, bulk installs, and embedded devices with no browser.

Where to get a token: Go to My Account → Secrets in the console and click + New Secret.

Enrollment Secrets

# Install + authenticate in one command
curl -sSL https://get.wantastic.app/install.sh | sh -s -- --token <YOUR_TOKEN>

Or after install:

wantasticd login --token <YOUR_TOKEN>

3. Manual config file (SD card / provisioning / offline)

Copy the WireGuard config directly from the console: open your device, go to Device Configuration → WireGuard tab, and copy the config block.

Device Configuration WireGuard

Write it to /etc/wantastic on the device:

[Interface]
PrivateKey = <YOUR_PRIVATE_KEY>
Address    = 10.x.x.x/32

[Peer]
PublicKey           = <YOUR_SERVER_PUBLIC_KEY>
Endpoint            = wg.wantastic.app:51820
AllowedIPs          = 10.0.0.0/8
PersistentKeepalive = 25
vi /etc/wantastic
wantasticd connect --config /etc/wantastic

You can pre-write this file to an SD card before first boot — the installer never overwrites an existing /etc/wantastic.


Usage

# Connect using config file
wantasticd connect --config /etc/wantastic

# Check connection status
wantasticd status

# Login interactively
wantasticd login

# Login with token
wantasticd login --token <TOKEN>

Service Management

The installer registers wantasticd as a system service automatically. You can manage it with the standard init tools for your platform:

systemd

systemctl status wantasticd
systemctl restart wantasticd
systemctl stop wantasticd

OpenWrt (procd)

/etc/init.d/wantasticd status
/etc/init.d/wantasticd restart
/etc/init.d/wantasticd stop

macOS (launchd)

launchctl list | grep wantastic
launchctl stop com.wantastic.wantasticd

Supported Platforms

OS Init System Architectures
Linux systemd amd64, arm64, arm, 386
OpenWrt procd mips, mipsle, mips64, mips64le, arm, arm64
Alpine Linux OpenRC amd64, arm64, arm
Debian/Ubuntu (legacy) SysV amd64, arm64
Embedded Linux BusyBox arm, mipsle
macOS launchd amd64, arm64
Windows SCM amd64
Linux any riscv64, ppc64le

License

See LICENSE.

About

wantastic custom userspace wireguard client

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 95.5%
  • Shell 3.7%
  • Other 0.8%