Morango is a pure-Python database replication engine for Django that supports peer-to-peer syncing of data. It is structured as a Django app that can be included in projects to make specific application models syncable.
Developed in support of the Kolibri product ecosystem, Morango includes some important features including:
- A certificate-based authentication system to protect privacy and integrity of data
- A change-tracking system to support calculation of differences between databases across low-bandwidth connections
- A set of constructs to support data partitioning
- Support for SQLite and PostgreSQL
See morango.readthedocs.io for documentation on how Morango works.
To start contributing to Morango, first make sure you have uv installed.
Create a virtual environment, which will create it in the .venv/ directory, with the python version defined in .python-version:
uv venvThen install dependencies:
uv sync --all-extrasIf you get errors during installation, you may need to install system packages such as openssl and libssl-dev.
Finally, set up pre-commit hooks:
prek install # with -f to reinstallBuilding the project is as easy as:
uv buildAfterwards, you'll find a source archive and wheel file in dist/.
To build and edit the docs, run:
# install requirements (if necessary)
uv sync --extra docs
# build docs
make docs
# auto-build and refresh docs on edit
make docs-autobuild