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.

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 dev

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 --group docs

# build docs
make docs

# auto-build and refresh docs on edit
make docs-autobuild

About

A pure Python DB replication engine for Django that supports SQLite and PostgreSQL.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors