Implementations
This page lists the Tieroute implementations that Reroute Holdings LLC maintains, and where to find their code.
Reference implementations
rerouted
The reference homeserver, written in Go and licensed under MIT. It implements every endpoint in the spec's Appendix A, and its repo includes guides for running a homeserver and a call relay.
Reroute
The reference client: a desktop app for macOS, Windows, and Linux, written in Rust and TypeScript and licensed under Apache-2.0.
- Code: not published yet.
- Download Reroute
All our public code is on GitHub, at github.com/rerouteholdings.
Build your own
Tieroute is an open protocol. You don't need permission to implement it, and our patent pledge means we'll never assert a patent against you for doing so.
Start with these:
- The Tieroute specification, the source of truth for every rule.
- The client API and the server-to-server API, endpoint by endpoint.
- The test vectors: known inputs and the exact bytes they must produce. Check your encoding, signatures, and identity chains against them before you test against a live server.
- The security claims: what a homeserver must refuse, and how each claim is tested.
To test against a homeserver you control, run rerouted on your own machine. Its README shows how to start one with a throwaway database in a few commands.
If something in the spec is unclear, or two parts of it disagree, comment on the passage. Questions from implementers are how the spec gets better.