explaingit

my20-phev/yakr

Analysis updated 2026-05-18

1PythonAudience · researcher

TLDR

An open protocol and reference implementation for private messaging that routes messages through relays run by trusted contacts instead of one central company.

Mindmap

mindmap
  root((Yakr Protocol))
    What it does
      Decentralized messaging
      End to end encryption
      Trust based relays
    Tech stack
      Python
      Rust
      Cryptography
    Use cases
      Message without a central server
      Run a homelab relay
      Build a compatible client
    Audience
      Developers
      Researchers
    Status
      Draft protocol
      Experimental security
      Seeking review

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study or contribute to an open spec for decentralized, end-to-end encrypted messaging.

USE CASE 2

Run a homelab relay so trusted contacts can exchange messages through your own server.

USE CASE 3

Build an independent client or implementation in another programming language and test it for interoperability.

USE CASE 4

Review the cryptography and protocol design for security weaknesses before it reaches production use.

What is it built with?

PythonRustTLSPost-quantum crypto

How does it compare?

my20-phev/yakr0xustaz/streamgatea-bissell/unleash-lite
Stars111
LanguagePythonPythonPython
Setup difficultyhardhard
Complexity4/54/5
Audienceresearcherdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

In plain English

Yakr is a proposal, and a working reference implementation, for a way to send private messages without relying on a single company running the servers in the middle. Instead of one central messaging provider, or one big shared pool of anonymous relay servers, Yakr routes encrypted messages through relays run by the very people, homes, or organizations that trust each other. In short, your network of trusted contacts becomes your own delivery network. The core idea is that a message gets encrypted on the sender's device, dropped off at a relay that both people already trust, and then the recipient's device checks in with that relay on its own schedule to pick the message up and decrypt it locally. This matters for phones that cannot easily receive an incoming connection, such as those on cellular networks or behind restrictive network setups. The relay itself can check that a message follows the rules and has not expired, but it cannot read the actual content, since everything is encrypted end to end. The newest version of the protocol also supports post-quantum cryptography, meaning it is designed to resist future computers built specifically to break current encryption methods. This repository is not a finished, polished messaging app you install on your phone. It is the specification document, a Python reference implementation, a separate Rust implementation, test data used to check that different implementations behave the same way, and a certification program for anyone who wants to build a compatible product. Actual consumer apps for Android, iOS, or desktop are meant to be separate projects built on top of this open protocol. The authors are upfront that this is early stage work: the protocol wording is still a draft and the security has not yet been checked by an outside auditor, so it should not be trusted for anything sensitive yet. They are actively looking for people to review the cryptography, build independent implementations in other programming languages, and try to break it with adversarial test cases.

Copy-paste prompts

Prompt 1
Explain how the Yakr protocol routes messages through a pairing graph instead of a central server.
Prompt 2
Help me set up a homelab relay for Yakr following the runbook in the docs.
Prompt 3
Walk me through the Yakr v1.0 protocol specification so I can build a compatible client.
Prompt 4
Show me how post-quantum key establishment works in the Yakr pairing profile.

Frequently asked questions

What is yakr?

An open protocol and reference implementation for private messaging that routes messages through relays run by trusted contacts instead of one central company.

What language is yakr written in?

Mainly Python. The stack also includes Python, Rust, TLS.

Who is yakr for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.