Developer overview
tavrn is split into repositories with clear roles. The protocol is the contract every implementation follows; the node, the clients and the libraries implement it. These pages collect the documents that are versioned with the code, copied here every time the website is built.
Where to start
Section titled “Where to start”- To understand the system, read the architecture in one page: nodes and identities, discovery, end-to-end encryption, voice, bots and the federation trust model.
- To build a client or an integration, start with the protocol overview
and the core protocol, then use the TypeScript client
@tavrn/sdk. - To write a bot, read applications and bots and the bot runtime
@tavrn/bot. Bots are visible members of encrypted channels and read only what they are allowed to see. - To work on the web client or the apps, see the web client, desktop app and Android app pages.
- To run a node, the node admin pages are the place to go.
The repositories
Section titled “The repositories”| Repository | What it is |
|---|---|
| tavrn-protocol | The specification, openapi.json, test vectors and permission tables |
| tavrn-crypto | The encryption core in Rust on OpenMLS, also as WebAssembly (@tavrn/crypto) |
| tavrn-js | The SDK @tavrn/sdk, the encryption layer @tavrn/e2ee and the bot runtime @tavrn/bot |
| tavrn-node | The node server with the embedded web client and the voice server |
| tavrn-web | The web client and the desktop app |
| tavrn | The overview, the architecture, the roadmap and the Discussions |
Contributions are welcome; the contributing page explains how, and which license each repository has.