Skip to content

learningequality/morango

Repository files navigation

Morango

Python tests PyPI image

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

Developer documentation

See morango.readthedocs.io for documentation on how Morango works.

Getting started

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 venv

Then install dependencies:

uv sync --all-extras

If 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 reinstall

Building

Building the project is as easy as:

uv build

Afterwards, you'll find a source archive and wheel file in dist/.

Docs

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

About

Pure Python sqlite-based Django DB replication engine

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors