4 releases
Uses new Rust 2024
new 0.0.4 | Mar 27, 2025 |
---|---|
0.0.3 | Mar 27, 2025 |
0.0.2 | Mar 27, 2025 |
0.0.1 | Mar 26, 2025 |
#1 in #mixnet
38KB
686 lines
thin client library for Katzenpost client daemon
A thin client library is designed to talk to the katzenpost mixnet client daemon. It's kind of like a dumb terminal, it doesn't know how to do much besides message passing. All the hard work is done by the client daemon.
Here's our thin client integration guide: https://github.com/katzenpost/website/blob/main/content/en/docs/client_integration.md
Here's the client2 daemon source code: https://github.com/katzenpost/katzenpost/tree/main/client2
That directory has a Makefile which will give you two ways to build the daemon:
- Makefile target "warpedclientdaemon": build binary for use with docker test mixnet.
- Makefile target "clientdaemon": build binary for production mixnet.
We recommend that you look over the client2.toml configuration file generated by our dockerized test mixnet. Using that configuration file you can either make the daemon listen for thin client connections on a TCP/IP socket or you can specify a UNIX domain socket.
Compatibility
This git repo contains two implementations of the thin client for katzenpost mixnet. One of them is written in Python and the other is written in Rust. Both use async io.
Works with Katzenpost v0.0.40 or later.
Rust
thin client library for Rust
This thin client has full feature parity with the golang reference thin client.
compile rust crate as usual
cargo build
Python
thin client library for Python
Currently the python implementation only supports using UNIX domain sockets.
install
pip instal -e .
License
AGPLv3
Dependencies
~4–12MB
~125K SLoC