https://github.com/yggdrasil-network/yggdrasil-go Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} yggdrasil-network / yggdrasil-go * Notifications * Star 1.4k * Fork 108 An experiment in scalable routing as an encrypted IPv6 overlay network yggdrasil-network.github.io View license 1.4k stars 108 forks Star Notifications * Code * Issues 107 * Pull requests 14 * Actions * Security * Insights More * Code * Issues * Pull requests * Actions * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 17 branches 23 tags Code Clone HTTPS GitHub CLI [https://github.com/y] Use Git or checkout with SVN using the web URL. [gh repo clone yggdra] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @neilalexander neilalexander Merge pull request #770 from yggdrasil-network/develop ... 983dfdb Mar 18, 2021 Merge pull request #770 from yggdrasil-network/develop Version 0.3.16 983dfdb Git stats * 1,953 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .circleci Build MSIs for Windows using CircleCI (#766) Mar 7, 2021 cmd Merge branch 'future' into develop-future Sep 27, 2020 contrib Build MSIs for Windows using CircleCI (#766) Mar 7, 2021 doc Fix typos Nov 29, 2019 misc golangci-lint in CI (#733) Sep 27, 2020 src Merge pull request #751 from Arceliar/bugfix Dec 19, 2020 .gitmodules Update README.md Mar 13, 2019 .golangci.yml golangci-lint in CI (#733) Sep 27, 2020 CHANGELOG.md Update changelog for v0.3.16 release (#769) Mar 18, 2021 Dockerfile Creating Dockerfile to / Dec 3, 2018 LICENSE Rename LICENSE.md to LICENSE Dec 3, 2018 README.md Move up to Go 1.16, upgrade dependencies (#765) Mar 7, 2021 build Don't preserve LDFLAGS from environment after all since they are prob... Jan 6, 2020 clean Use #!/bin/sh for clean script Dec 26, 2018 go.mod Move up to Go 1.16, upgrade dependencies (#765) Mar 7, 2021 go.sum Move up to Go 1.16, upgrade dependencies (#765) Mar 7, 2021 View code Yggdrasil Introduction Supported Platforms Building Running Generate configuration Run Yggdrasil Documentation Community License README.md Yggdrasil CircleCI Introduction Yggdrasil is an early-stage implementation of a fully end-to-end encrypted IPv6 network. It is lightweight, self-arranging, supported on multiple platforms and allows pretty much any IPv6-capable application to communicate securely with other Yggdrasil nodes. Yggdrasil does not require you to have IPv6 Internet connectivity - it also works over IPv4. Although Yggdrasil shares many similarities with cjdns, it employs a different routing algorithm based on a globally-agreed spanning tree and greedy routing in a metric space, and aims to implement some novel local backpressure routing techniques. In theory, Yggdrasil should scale well on networks with internet-like topologies. Supported Platforms We actively support the following platforms, and packages are available for some of the below: * Linux + .deb and .rpm packages are built by CI for Debian and Red Hat-based distributions + Arch, Nix, Void packages also available within their respective repositories * macOS + .pkg packages are built by CI * Ubiquiti EdgeOS + .deb Vyatta packages are built by CI * Windows * FreeBSD * OpenBSD * OpenWrt Please see our Platforms pages for more specific information about each of our supported platforms, including installation steps and caveats. You may also find other platform-specific wrappers, scripts or tools in the contrib folder. Building If you want to build from source, as opposed to installing one of the pre-built packages: 1. Install Go (requires Go 1.16 or later) 2. Clone this repository 3. Run ./build Note that you can cross-compile for other platforms and architectures by specifying the GOOS and GOARCH environment variables, e.g. GOOS= windows ./build or GOOS=linux GOARCH=mipsle ./build. Running Generate configuration To generate static configuration, either generate a HJSON file (human-friendly, complete with comments): ./yggdrasil -genconf > /path/to/yggdrasil.conf ... or generate a plain JSON file (which is easy to manipulate programmatically): ./yggdrasil -genconf -json > /path/to/yggdrasil.conf You will need to edit the yggdrasil.conf file to add or remove peers, modify other configuration such as listen addresses or multicast addresses, etc. Run Yggdrasil To run with the generated static configuration: ./yggdrasil -useconffile /path/to/yggdrasil.conf To run in auto-configuration mode (which will use sane defaults and random keys at each startup, instead of using a static configuration file): ./yggdrasil -autoconf You will likely need to run Yggdrasil as a privileged user or under sudo, unless you have permission to create TUN/TAP adapters. On Linux this can be done by giving the Yggdrasil binary the CAP_NET_ADMIN capability. Documentation Documentation is available on our GitHub Pages site, or in the base submodule repository within doc/yggdrasil-network.github.io. * Configuration file options * Platform-specific documentation * Frequently asked questions * Admin API documentation * Version changelog Community Feel free to join us on our Matrix channel at #yggdrasil:matrix.org or in the #yggdrasil IRC channel on Freenode. License This code is released under the terms of the LGPLv3, but with an added exception that was shamelessly taken from godeb. Under certain circumstances, this exception permits distribution of binaries that are (statically or dynamically) linked with this code, without requiring the distribution of Minimal Corresponding Source or Minimal Application Code. For more details, see: LICENSE. About An experiment in scalable routing as an encrypted IPv6 overlay network yggdrasil-network.github.io Topics mesh-networks ipv6 decentralized mesh routing-algorithm routing-mesh e2e-encryption spanning-tree Resources Readme License View license Releases 23 Version 0.3.16 Latest Mar 18, 2021 + 22 releases Packages 0 No packages published Contributors 26 * @neilalexander * @Arceliar * @cwchristerw * @cathugger * @majestrate * @AwesomePatrol * @jcgruenhage * @wstrm * @deavmi * @wfleurant * @kurotych + 15 contributors Languages * Go 84.0% * Python 8.0% * Shell 6.1% * C 1.6% * Other 0.3% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.