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.
The following command will create a virtual environment in .venv/, with the python version defined in .python-version, and install development dependencies:
uv sync --group devIf 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 --group docs
# build docs
make docs
# auto-build and refresh docs on edit
make docs-autobuild