Skip to content
Library for handling diffs for geospatial data
Python C++ Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status CircleCI Build status Coverage Status PyPI version


Library for handling diffs for geospatial data

Use case 1: user has a GeoPackage with some data, then creates a copy and modifies it. Using this library it is possible to create a "difference" (delta) file that contains only changes between the original and the modified GeoPackage. The library can also take the original file and the generated diff file and produce the modified file.

Use case 2: two users start with the same copy of GeoPackage file which they modify independently. This may create conflicts when trying to merge edits of the two users back into one file. The library takes care of resolving any potential conflicts so that the changes can be applied cleanly.

The library is used by Mergin - a platform for easy sharing of spatial data.


Output messages could be adjusted by GEODIFF_LOGGER_LEVEL environment variable. See header for details


pip3 install pygeodiff

if you got error ModuleNotFoundError: No module named 'skbuild' try to update pip with command python -m pip install --upgrade pip



run python3 ./scripts/ --version x.y.z and push to GitHub

tag the master on github and it will be automatically published!


  • Compile geodiff shared library
  mkdir build
  cd build
  cmake ../geodiff

Run tests and check it is ok ./test_geodiff

  • run pygeodiff tests for python module, you need to setup GEODIFFLIB with path to .so/.dylib from step1
  GEODIFFLIB=`pwd`/../build/libgeodiff.dylib nose2

Dependencies & Licensing

Library uses its own copy of

You can’t perform that action at this time.