#bindings #embeddable #wireguard #hide #don-t #quality #wgctrl-rs

sys wgctrl-sys

Raw bindings to the WireGuard embeddable C library

1 unstable release

Uses old Rust 2015

0.1.0 Aug 25, 2018

#9 in #wire-guard


Used in wgctrl-rs

LGPL-2.1-or-later

47KB
1.5K SLoC

C 1.5K SLoC // 0.0% comments Rust 46 SLoC

wgctrl-rs

This is really hacky, pre-pre-pre-alpha quality software. Nothing works, and things that do work don't actually work. Hide your cat.

Docs (wip!)

License

LGPL 2.1, cause that's what the wireguard C library is licensed under

What works

  • key generation
  • key -> base64 and base64 -> key conversion
  • reading iface configuration
  • writing iface configuration (incl. partial updates, similar to CLI wg tool)

TODO

  • clean up API
  • implement setconf/showconf/addconf?
  • better error handling
  • more localized unsafeness
  • fix potential UB wrt Key constness

Misc notes

  • this is intended to be really high level, so no linked lists, rewriting everything all the time, lots of overhead, explicit peer add/remove operations and such
  • non-Linux (wireguard-go, wireguard-rs, etc) will require a whole other backend
  • the name is not final because wireguard-rs exists - maybe wgapi-rs or something?

Dependencies

~0–2MB
~38K SLoC