Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cunicu/cunicu
A zeroconf peer-to-peer mesh VPN using Wireguard® and Interactive Connectivity Establishment (ICE)
https://github.com/cunicu/cunicu
edge-cloud go golang ice iot mesh multi-agent-systems nat-traversal networking vpn vpn-manager wireguard wireguard-vpn
Last synced: about 2 months ago
JSON representation
A zeroconf peer-to-peer mesh VPN using Wireguard® and Interactive Connectivity Establishment (ICE)
- Host: GitHub
- URL: https://github.com/cunicu/cunicu
- Owner: cunicu
- License: apache-2.0
- Created: 2021-07-18T22:01:23.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-29T00:51:42.000Z (8 months ago)
- Last Synced: 2024-05-02T06:17:22.532Z (8 months ago)
- Topics: edge-cloud, go, golang, ice, iot, mesh, multi-agent-systems, nat-traversal, networking, vpn, vpn-manager, wireguard, wireguard-vpn
- Language: Go
- Homepage: https://cunicu.li
- Size: 14.4 MB
- Stars: 145
- Watchers: 12
- Forks: 10
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
[![GitHub build](https://img.shields.io/github/actions/workflow/status/cunicu/cunicu/build.yaml?style=flat-square)](https://github.com/cunicu/cunicu/actions)
[![goreportcard](https://goreportcard.com/badge/github.com/cunicu/cunicu?style=flat-square)](https://goreportcard.com/report/github.com/cunicu/cunicu)
[![Codecov](https://img.shields.io/codecov/c/github/cunicu/cunicu?token=WWQ6SR16LA&style=flat-square)](https://app.codecov.io/gh/cunicu/cunicu)
[![License](https://img.shields.io/github/license/cunicu/cunicu?style=flat-square)](https://github.com/cunicu/cunicu/blob/main/LICENSE)
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/cunicu/cunicu?style=flat-square)
[![Go Reference](https://pkg.go.dev/badge/github.com/cunicu/cunicu.svg)](https://pkg.go.dev/github.com/cunicu/cunicu)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?style=flat-square)](code_of_conduct.md)## 🚧 cunīcu is currently still in an Alpha state and not usable yet
[cunīcu][cunicu] is a user-space daemon managing [WireGuard®][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)](https://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment), 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](https://github.com/pion/awesome-pion) [pion/ice][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](https://erigrid2.eu), 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](https://cunicu.li/docs).
## Contact
Please have a look at the contact page: https://cunicu.li/docs/contact
## License
cunīcu is licensed under the [Apache 2.0](./LICENSE) license.
- SPDX-FileCopyrightText: 2023 Steffen Vogel
- 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)](https://www.acs.eonerc.rwth-aachen.de) of [RWTH Aachen University](https://www.rwth-aachen.de).
The development of cunīcu has been supported by the [ERIGrid 2.0][erigrid] project of the H2020 Programme under [Grant Agreement No. 870620](https://cordis.europa.eu/project/id/870620)
## Trademark
_WireGuard_ and the _WireGuard_ logo are [registered trademarks](https://www.wireguard.com/trademark-policy/) of Jason A. Donenfeld.
[wireguard]: https://wireguard.com
[pion-ice]: https://github.com/pion/ice
[cunicu]: https://github.com/cunicu/cunicu
[erigrid]: https://erigrid2.eu