Skip to content

libzig/libvine

Repository files navigation

libvine

libvine is the repo behind vine, a Linux overlay VPN binary built in Zig on top of the libzig stack.

The primary product is now:

  • one vine binary you can copy to multiple Linux PCs
  • one libself identity per machine
  • one TOML config per machine
  • one overlay network with explicit prefix ownership
  • direct sessions when possible, relay fallback when necessary

The library remains important, but the intended operator experience is:

  1. build vine
  2. copy the same binary to each Linux host
  3. generate one identity per host
  4. install one host-specific config per host
  5. start the daemon
  6. inspect peers, routes, sessions, counters, and snapshots

Build

nix develop -c make build

This produces the vine binary through zig build vine.

Quick Start

Use the multi-PC showcase under examples/multi-pc/ as the reference deployment:

  • alpha
  • beta
  • gamma
  • relay

Typical first steps on a host:

vine identity init
vine config validate -c /etc/libvine/vine.toml
vine doctor -c /etc/libvine/vine.toml
vine daemon run -c /etc/libvine/vine.toml

Identity Versus Addressing

vine does not treat overlay IP addresses as peer identity.

  • libself identity answers who a node is
  • NetworkId answers which overlay network the node belongs to
  • VinePrefix answers which overlay IP range the node advertises
  • libmesh answers which current path should be used to reach that node

Peer trust and allowlisting must bind to libself identity first, and only then to overlay addressing policy.

Stack Position

  • libself: identity and authenticated peer metadata
  • libmesh: discovery, signaling, path selection, and relay fallback
  • libdice: NAT traversal assistance when direct paths need setup exchange
  • libfast: encrypted transport for control and packet carriage
  • libvine: overlay network semantics and Linux host integration

libvine is not a replacement control plane. It uses libmesh for discovery, signaling, route selection, session setup, and relay fallback. libvine owns overlay membership policy, virtual addressing, packet forwarding, and Linux TUN integration.

Documentation

The project documentation lives in the mdBook under book/.

Useful entry points:

About

a simple virtual network library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages