An open-source reimplementation of the defined.net management protocol
Go to file
core 12a24b135a
/ build_arm64 (push) Waiting to run Details
/ build_win64 (push) Waiting to run Details
/ build (push) Successful in 1m32s Details
/ build_x64 (push) Has been cancelled Details
work, api alpha3
2024-01-23 19:34:46 -05:00
.builds fix pkgver calculation 2023-06-27 09:11:26 -04:00
.forgejo/workflows tfapi exe file correctness 2023-12-28 01:52:18 -05:00
.idea work, api alpha3 2024-01-23 19:34:46 -05:00
api tfclient enrollment successful 2023-03-28 12:16:00 -04:00
dnapi-rs bugfix alpha1 2023-12-27 01:57:17 -05:00
docs 0.3 error fixes, refmt 2023-11-23 15:23:52 -05:00
nebula-config nebula-config 0.1.0 2023-12-29 16:12:31 -05:00
nebula-ffi remove that thing 2023-12-29 21:25:04 -05:00
packages fix void builds 2023-07-18 22:03:25 -04:00
tfcli network create request, remove old tfweb pending rewrite 2023-12-16 21:14:12 -05:00
tfclient tfclient 0.4, nebula-ffi 1.8.1. nebula 1.7.3 -> 1.8.1 2023-12-29 16:10:32 -05:00
tfclient-go work, api alpha3 2024-01-23 19:34:46 -05:00
tfweb frontend magic link, make tokens always end in 'tf' 2023-12-18 12:33:34 -05:00
trifid-api work, api alpha3 2024-01-23 19:34:46 -05:00
trifid-api-derive network create request, remove old tfweb pending rewrite 2023-12-16 21:14:12 -05:00
trifid-api-old 0.3 error fixes, refmt 2023-11-23 15:23:52 -05:00
trifid-pki network create request, remove old tfweb pending rewrite 2023-12-16 21:14:12 -05:00
trifid_mobile_bridge work, api alpha3 2024-01-23 19:34:46 -05:00
website/docs hotfix: configurable threadpool size & new website starts 2023-08-15 00:16:47 -04:00
.env buildfiles pt5 2023-02-07 14:00:57 -05:00
.gitignore finish i18n & build 2023-10-09 21:30:56 -04:00
Cargo.lock work, api alpha3 2024-01-23 19:34:46 -05:00
Cargo.toml work, api alpha3 2024-01-23 19:34:46 -05:00
Cross.toml wrong table name 2023-06-26 23:20:07 -04:00
Dockerfile new work 2023-11-18 22:51:45 -05:00
LICENSE.txt licensing 2023-02-27 20:50:31 -05:00
README.md update platform support doc 2023-12-16 12:01:40 -05:00
build_windows.sh update the windows buildscript to produce static nebula-ffi builds, massively increase nebula-ffi platform support 2023-12-16 11:53:06 -05:00
database_structure new work 2023-11-18 22:51:45 -05:00

README.md

trifid

trifid is an open-souce reimplementation of the Defined Networking management protocol for Nebula networks.

It includes a reimplementation of the API Server, the Web UI, dnclient, nebula-cert and dnapi - all fully API-compatible with the original versions.

In addition to this, we include a command-line tool tfcli for interfacing with the DN management API, fully compatible with the upstream API or a third-party API implementation such as trifid-api.

We also include a Rust library for interacting with keys and certificates in the Nebula PKI. Find it in trifid-pki/, or on crates.rs as trifid-pki. This library is an implementation of the Nebula PKI system that is mostly feature-complete, with the exception of non-Curve25519 cryptography, which is currently unsupported.

Want to make your own Defined Networking client? Check out dnapi-rs! dnapi-rs is a Rust port of the official dnapi Go library, to allow for easy interactions with Defined Networking-compatible API servers. Find it in dnapi-rs/, or on crates.rs as dnapi-rs.

The API implementation is tested with the official dnclient implementaiton, and the dnclient implementation is tested with the official API server, to ensure complete feature parity between the two.

Documentation

You can find the documentation here! You can find the latest, bleeding-edge docs here!

Documentation work is underway. Parts of the documentation may be broken or unfinished.

Supported Platforms

tfclient is designed to be self-contained and as cross-platform as possible. Where possible, tfclient can be completley self-contained and fully functional on so-called "Tier 1" supported platforms. On other platforms, tfclient itself works great, but due to limitations of the platform cannot properly link with nebula, and thus needs to be broken out into two components - tfclient, to fetch config from the API, and nebula, running entirely separately, running off of that config. These platforms are known as "Tier 2" platforms.

In addition, not all clients support connecting to trifid-api. Both tfclient support tiers and trifid-api connectivity capability are listed below.

Operating System / Architecture tfclient support tier trifid-api compatible?
Windows (all architectures) Tier 1 Yes (tfclient/dnclient)
Darwin (OSX, MacOS) Tier 1 Yes (tfclient/dnclient)
FreeBSD (amd64) Tier 1 Yes (tfclient/dnclient)
Linux (most architectures) Tier 1 Yes (tfclient/dnclient)
Android Unsupported No (almost - help wanted! see docs)
iOS Unsupported No (almost - help wanted! see docs)