Giter Site home page Giter Site logo
cunīcu logo

GitHub build goreportcard Codecov License GitHub go.mod Go version Go Reference Contributor Covenant

🚧 cunīcu is currently still in an Alpha state and not usable yet

cunīcu is a user-space daemon managing WireGuard® interfaces to establish a mesh of peer-to-peer VPN connections in harsh network environments.

To achieve this, cunīcu utilizes a signaling layer to exchange peer information such as public encryption keys, hostname, advertised networks and reachability information to automate the configuration of the networking links. From a user perspective, cunīcu alleviates the need of manual configuration such as exchange of public keys, IP addresses, endpoints, etc.. Hence, it adopts the design goals of the WireGuard project, to be simple and easy to use.

Thanks to Interactive Connectivity Establishment (ICE), cunīcu is capable to establish direct connections between peers which are located behind NAT firewalls such as home routers. In situations where ICE fails, or direct UDP connectivity is not available, cunīcu falls back to using TURN relays to reroute traffic over an intermediate hop or encapsulate the WireGuard traffic via TURN-TCP.

It relies on the awesome pion/ice package for ICE as well as bundles the a Go user-space implementation of WireGuard in a single binary for systems in which WireGuard kernel support has not landed yet.

With these features, cunīcu can be used to quickly build multi-agent systems or connect field devices such as power grid monitoring infrastructure into a fully connected mesh. Within the ERIGrid 2.0 project, cunīcu is used to interconnect smart grid laboratories for geographically distributed simulation of energy systems.

Documentation

cunīcu's documentation can be found here: cunicu.li/docs.

Authors

License

cunīcu is licensed under the Apache 2.0 license.

  • SPDX-FileCopyrightText: 2023 Steffen Vogel [email protected]
  • SPDX-License-Identifier: Apache-2.0

Funding acknowledgement

The project has been initiated by Steffen Vogel while working at the Institute for Automation of Complex Power Systems (ACS) of RWTH Aachen University.

European Flag The development of cunīcu has been supported by the ERIGrid 2.0 project of the H2020 Programme under Grant Agreement No. 870620

Trademark

WireGuard and the WireGuard logo are registered trademarks of Jason A. Donenfeld.

cunīcu's Projects

circl icon circl

Fork of Cloudflare's CIRCL cryptographic library with support for the Classic McEliece PQ KEM (round 3)

cunicu icon cunicu

A zeroconf peer-to-peer mesh VPN using Wireguard® and Interactive Connectivity Establishment (ICE)

go-babel icon go-babel

A Go implementation of the Babel routing protocol

go-iso7816 icon go-iso7816

A Go implementation of the ISO7816 standard for smart card communication

go-openpgp-card icon go-openpgp-card

A Go implementation for talking to an OpenPGP smartcard application

go-piv icon go-piv

A Go implementation of the PIV standards for smart card certificate management

go-pmtud icon go-pmtud

A Go implementation of Packetization Layer Path MTU Discovery (RFC 4821)

go-rosenpass icon go-rosenpass

A port of Rosenpass post-quantum key-exchange protocol to Go.

go-ykoath icon go-ykoath

A Go implementation of Yubico's YKOATH protocol

gont icon gont

A Go testing framework for distributed applications

hawkes icon hawkes

A Go implementation of hardware-secured key establishment methods

skeleton icon skeleton

Template for new Go packages in the cunicu organization

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.