Metadata-Version: 2.4
Name: katzenpost_thinclient
Version: 0.0.2
Summary: A thinclient for the Katzenpost client daemon
Project-URL: Homepage, https://katzenpost.network/
Project-URL: Issues, https://github.com/katzenpost/thin_client/issues
Author-email: David Stainton <dstainton415@gmail.com>
License-File: LICENSE
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security :: Cryptography
Requires-Python: >=3.8
Requires-Dist: asyncio==3.4.3
Requires-Dist: cartopy==0.24.1
Requires-Dist: cbor2==5.6.0
Requires-Dist: coloredlogs==15.0.1
Requires-Dist: cryptography==41.0.7
Requires-Dist: geoip2==5.0.1
Requires-Dist: jinja2==3.1.6
Requires-Dist: matplotlib==3.10.1
Requires-Dist: pprintpp==0.4.0
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Description-Content-Type: text/markdown


# katzenpost_thinclient

*A thin client for sending and receiving messages via a Katzenpost mix network.*

This pypi package provides a thin client library for interacting with a
Katzenpost mixnet.

A mix network is a type of anonymous communications network.

A thin client library is code you can use as a depencency in your
application so that it can anonymously interact with services on the
mix network. The Katzenpost client daemon is a multiplexing client;
many applications on the same device can use their thin client
libraries to connect to the daemon and interact with mixnet services
concurrently.



# Contributions

This is a work in progress and we'll require feedback from developers to make improvements.
Pull requests welcome:

https://github.com/katzenpost/thin_client



# Documentation

Here's our python API docs:
https://katzenpost.network/docs/python_thin_client.html

Here's our thin client integration guide:
https://github.com/katzenpost/website/blob/main/content/en/docs/client_integration.md



# Installation

Install katzenpost using pip:

```bash
pip install katzenpost_thiclient
```


# Code Examples

We have two working example python programs that use this
thin client library:

1. stats - terminal application that prints the current mixnet status
   https://github.com/katzenpost/status

2. worldmap - renders an image of the mixnet transposed over a worldmap
   https://github.com/katzenpost/worldmap



# Usage

To use this library you need to have a running Katzenpost client daemon.

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:

1. Makefile target "warpedclientdaemon": build binary for use with docker test mixnet.
2. 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

Works with Katzenpost v0.0.40 or later.



# License

AGPLv3
