# trifid

trifid is an open-souce reimplementation of the [Defined Networking](https://defined.net) management protocol for [Nebula](https://github.com/slackhq/nebula) networks.

It includes a reimplementation of the [API Server](https://api.defined.net), the [Web UI](https://admin.defined.net), `dnclient`, `nebula-cert` and `dnapi` - all fully API-compatible with the original versions.

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`.

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.

# Links

- [tfclient documentation](./docs/tfclient/index.md)
- [trifid-api documentation](./docs/trifid-api/index.md)
- [dnapi-rs documentation](https://docs.rs/dnapi-rs)
- [dnapi-rs on crates.io](https://crates.io/crates/dnapi-rs)
- [trifid-pki documentation](https://docs.rs/trifid-pki)
- [trifid-pki on crates.io](https://crates.io/crates/trifid-pki)
- [trifid git repository](https://git.e3t.cc/~core/trifid)
- [trifid announcements mailing list](https://lists.e3t.cc/~core/trifid-announce)
- [trifid patch mailing list](https://lists.e3t.cc/~core/trifid-devel)
- [trifid discussion mailing list](https://lists.e3t.cc/~core/trifid-discuss)

# Get in touch

Have a question about trifid? Check out the [discussion mailing list](https://lists.e3t.cc/~core/trifid-discuss)! `trifid-discuss` is a mailing list for end-user discussion and questions related to the trifid project.

Run a trifid-api server or otherwise just want to hear news about trifid? Subscribe to our [announcements list](https://lists.e3t.cc/~core/trifid-announce)! `trifid-announce` is a low-volume mailing list for announcements related to the trifid project.

# Contributing

trifid is open source at its heart and we are happy to take your contribution. Send in your patches to the [development mailing list](https://lists.e3t.cc/~core/trifid-devel) and we will get back to you as fast as we can and work on getting your changes merged. Need help sending patches to this list? Check out the handy guide at https://git-send-email.io - or just shoot an email to `trifid-discuss` and we would be happy to help.

# Report a bug

<div class="alert alert-warning">
  <strong>Notice</strong>: Do not use this list for security-related issues. Shoot an email to core@e3t.cc if you have a security-related issue and we can have a chat about how to properly report and fix it. We are dedicated to building a secure project, and are glad to work with you to responsibly fix your issue.
</div>

Found a bug in any of the components of trifid? Submit it to [our issue tracker](https://todo.e3t.cc/~core/trifid) to let us know!