#osm #route #routing #pbf #xml

bin+lib osmgraphing

Playing around with graphs created via parsing OpenStreetMap data

16 releases (5 breaking)

✓ Uses Rust 2018 edition

0.6.1 Dec 3, 2019
0.6.0 Sep 22, 2019
0.5.0 Sep 14, 2019
0.4.1 Sep 11, 2019
0.1.5 Aug 25, 2019

#227 in Algorithms

Download history 33/week @ 2019-10-02 2/week @ 2019-10-09 61/week @ 2019-10-16 38/week @ 2019-10-23 37/week @ 2019-10-30 2/week @ 2019-11-06 16/week @ 2019-11-13 32/week @ 2019-11-20 36/week @ 2019-11-27 43/week @ 2019-12-04 22/week @ 2019-12-11 1/week @ 2019-12-18 17/week @ 2019-12-25 2/week @ 2020-01-01 123/week @ 2020-01-08

128 downloads per month




Build Status latest Build Status master Tag Crates.io Docs

License Last commit

Goal of this student project is parsing openstreetmap data to calculate traffic routes on it.


The automatic deployment to crates.io is working. The parser has been finished and can parse Germany in ±8 minutes on a common machine.

The braess-simulation has been implemented. It tries to find potential bottlenecks in street-networks. The idea is to calculate some routes via selfish routing (e.g. fastest path), resulting in routes and theoretical costs. With these selfish-routes, actual route-costs are calculated. These actual costs could be very different to the theoretical costs, since selfish routing leads to bad coverage of the streetgraph. The goal is to reduce the actual costs by removing edges from the streetgraph using the number of routes per edge. The implemented solution runs concurrently and shows some nice issues, but should be seen as starting-point for further digging.

Next steps will be cleaning up a little, before the master-thesis starts. The wiki should explain more implementation-ideas and the visualization of the braess-simulation could be improved. After cleanup, I will do my master-thesis with this project. It will play around with new metrices basing on edge-usages after calculating alternative routes.

Setup and usage

Please refer to setup and usage to get details about the project setup and how to run the code.


~153K SLoC