Contribution Guidelines

  • Get familiar with the various repositories on our Github, in particular the monorepo

  • Developers should look at the Developer Guide and the Dockerized Mixnet Readme to build and run a local Katzenpost mixnet.

  • Open a pull request on Github. We will help with occurring problems and merge your changes back into the main project.

Where to Start

We have a lot of repositories! The top-level packages that you’ll probably want to look at first are:

  • Katzen a cross-platform minimum viable messenger app in purely in Go using Gioui framework that has extended beyond catchat
  • Catchat a QT cross-platform metadata minimizing messenger application utilizing catshadow.
  • Catshadow is a mix network messaging system. This repository contains a client library which can be used with a Katzenpost mix network. It not only uses strong modern end to end encryption (Noise + Double Ratchet), but it is also designed to reduce the amount of metadata leaked onto the network.
  • Client is a mixnet client library you can use to write applications that interact with mixnet services.
  • Server is the mix and provider daemons that route messages and run services.
  • Authority are the PKI daemons that provide key and service information to the network.
  • Server_Plugins are examples of a mixnet service plugins written in golang and rust.

Project Ideas

  • See the Project-Ideas page on our wiki
  • Some of our other longer term projects ideas involving future research are documented here in various other tickets