You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This organization hosts the source code for the MobilityDB ecosystem — an open-source platform for geospatial trajectory data management and analysis.
For the conceptual overview, type system, tutorials, quickstarts, and encoding specifications, see libmeos.org — the project's public front door. This page is the repository map: where each piece of code lives.
The project is developed by the Computer & Decision Engineering Department of the Université libre de Bruxelles (ULB) under the direction of Prof. Esteban Zimányi. ULB is an OGC Associate Member and member of the OGC Moving Feature Standard Working Group (MF-SWG).
Book
Detailed explanations and application scenarios are in the project's textbook:
The sections below follow the figure's boxes bottom → top, left → right.
🔄 Portable data — the interchange band beneath MEOS
This is the portable-data interchange band drawn beneath MEOS in the figure. MEOS exposes a zero-copy Arrow C Data Interface and a Parquet / TemporalParquet on-disk form, so trajectories move between the engines and a Temporal Data Lake without re-encoding. It is the data-side complement of the portable-computation property of the SQL layers below. Both properties — and their reproducible companions — are catalogued in the mobility-platform interoperability index (in MobilityDB, doc/temporal-parquet/).
Machine-readable description of the MEOS C-library API (an IDL JSON plus a shape-metadata catalog), generated from the MEOS headers via libclang. Beyond binding code-generation, the enriched catalog is projected into service contracts: an OpenAPI 3.1 contract, a Model Context Protocol (MCP) tool manifest (so LLMs/agents can call the MEOS spatiotemporal algebra directly), and a contract-driven runtime HTTP server.
🟦 SQL layers (peers above MEOS)
Three SQL surfaces share the same MEOS-backed type system, function catalog, and BerlinMOD reference queries. Portable SQL means the same query text runs against any of the three. The portable named-function dialect and its rationale are described in the edge-to-cloud SQL portability discussion (#861).
This is the platform's portable computation property — one query text, three engines. Its data-side complement, portable data, is the interchange band described in the 🔄 Portable data — the interchange band beneath MEOS section above.
Apache Spark plugin — peer SQL layer for distributed and large-scale workloads, with MEOS-backed UDFs and DataFrame integration.
🌊 Stream layers (planned)
Planned — not yet built. The same edge-to-cloud model is planned for the streaming side of the ecosystem, each tool in its canonical role: MobilityNebula (NebulaStream) on the edge, MobilityKafka (Apache Kafka) as the streaming transport backbone in between, and MobilityFlink (Apache Flink) for stream processing in the cloud — reproducing the SNCB benchmark from MobilityNebula (EDBT 2026). It is drawn as a dashed, ghosted box — same format as the other peer boxes, second in the peers row of the figure above (dashed = not yet built).
BerlinMOD data generator and benchmark, using Open Street Map data and pgRouting. Brussels by default; a Hanoi (Vietnam) instantiation lives in MobilityDB-BerlinMOD-Hanoi. Also the cross-platform conformance suite for the portable SQL dialect — the same queries run on all three SQL surfaces and must return identical results.
Multi-Entry Search Trees for PostgreSQL — generic indexing primitive used by MobilityDB.
⬜ Archived
These repositories are preserved in read-only form for historical reference and to keep existing links resolvable. Each carries an in-README banner pointing at its successor.
The book reference above; or the CITATION.cff of any binding repo
Acknowledgements
The MobilityDB project has received funding from the European Union's Horizon Europe research and innovation programme under grant agreements No 101070279 MobiSpaces and No 101093051 EMERALDS.