zerolib: A Minimalist ZeroNet Protocol Library

zerolib is a minimalist utility library for working with the ZeroNet protocol, which is based on MessagePack and uses deterministic elliptic curve signature. It is written for Python 3.5+

This is a highly experimental library. Before its API is stablized, developers should pay close attention to this documentation, as the public API provided by the library may be changed.

Features include:

  • Digital signatures
  • Hashing and data integrity checking
  • TLS certificate utilities
  • Packet parsing and formatting
  • Connection managing
  • Readers-writer locks

zerolib is inspired by the reference ZeroNet implementation written by shortcutme, but features more consistent API and greater flexibility.

zerolib is written and maintained by MuxZeroNet with help from the contributors and is licensed under the GNU General Public License version 3. If you like this project, please consider running a seed box.

Note

To avoid confusion, a private key is usually called a secret key in the documentation.

How to install

I recommend you use zerolib in a virtual environment.

sudo apt install python3-pip python3-venv

mkdir devel
python3 -m venv devel/
cd devel
git clone https://github.com/MuxZeroNet/zerolib.git

# Super important! You must activate the virtual environment.
# The `source` command activates the virtual environment.
source ./bin/activate
which python3 && which pip

cd zerolib/
python3 -m pip install -r requirements.txt --upgrade
python3 -m pip install -r ci-requirements.txt --upgrade

python3 run_tests.py