An XMPP client for geospatial data
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pukkamustard 1af46a88f3 v0.5.0 3 months ago
.reuse initial commit 1 year ago
LICENSES Leaflet: Add reuse license information 8 months ago
src v0.5.0 3 months ago
vendor GeoPub: add some sample data. 3 months ago
.gitignore initial commit 1 year ago
.ocamlformat Brr_react: First steps... 10 months ago v0.5.0 3 months ago
Makefile Makefile: use --release flag 3 months ago README: some links to blog posts 3 months ago
channels.scm channel.scm: Update to a more recent working version of Guix. 3 months ago
dune-project Geopub_map: Factor out map to a sub-library 3 months ago
geopub.opam initial commit 1 year ago
guix.scm guix: Update ocaml-datalogl. 3 months ago
indexeddb.opam Geopub_database: Move database functionality to sublibrary 3 months ago
leaflet.opam Geopub_map: Factor out map to a sub-library 3 months ago


GeoPub is an ActivityPub client developed within the openEngiadina project.

For more information see also:


GeoPub was started as a very simple JavaScript demonstrator to show how geographic information can be used over the ActivityPub protocol (see branch initial-js-demonstrator).

A second version was developed in ClojureScript (see branch cljs). The ClojureScript version was abandoned due to licensing and reproducability issues (it is hard to use GPL/AGPL for Clojure(Script) projects and Clojure support in Guix/Nix is not so good).

This (the third version) is implemented in OCaml using js_of_ocaml.


A development environment can be created with Guix:

guix shell -D -f guix.scm

After this you can run dune build @install which will build GeoPub and place all necessary artifacts into _build/install/default/share/geopub/.

You may want to start a small webserver for local development (e.g. python3 -m http.server --directory _build/install/default/share/geopub/). This works very nicely when running dune in watch mode (dune build @install --watch).

Note that this uses dependencies from Guix. You might have to run guix pull to get the lastest dependencies from Guix. To use a version of Guix that has been tested use: guix time-machine -C channels.scm -- shell -D -f guix.scm.


GeoPub is being developed for the openEngiadina project and has been supported by the NLNet Foundation trough the NGI0 Discovery Fund.