A high-performance routing engine written in C++ that provides route, trip, and navigation services using OpenStreetMap data.
OSRM is an open-source routing engine that calculates optimal routes, travel times, and navigation instructions using OpenStreetMap data. It solves problems like fastest path finding, GPS trace matching, and traveling salesman optimization through high-performance algorithms.
Developers and organizations needing self-hosted routing for navigation apps, logistics platforms, or geographic analysis tools without relying on commercial APIs.
It offers complete control over routing data and infrastructure, supports advanced algorithms like Contraction Hierarchies and Multi-Level Dijkstra, and provides multiple interfaces (HTTP, C++ library, Node.js) for flexibility.
Open Source Routing Machine - C++ backend
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Contraction Hierarchies and Multi-Level Dijkstra algorithms to compute routes and matrices in milliseconds, optimized for large-scale OpenStreetMap datasets as highlighted in its architecture.
Self-hosted setup allows routing on custom OSM extracts without third-party API dependencies, ensuring privacy and cost savings, core to its open-source philosophy.
Offers HTTP API, C++ library, and Node.js bindings, providing flexibility for web services, embedded systems, and JavaScript applications, as detailed in the quick start.
Supports complex operations like GPS trace matching, traveling salesman problem solving, and Mapbox Vector Tiles generation, going beyond basic point-to-point routing.
Preprocessing OSM data involves multiple steps (extract, partition, customize) that can take hours for large regions and requires careful file management, as noted in the Docker setup warnings.
Routing relies on preprocessed OpenStreetMap snapshots; integrating real-time traffic or frequent map updates requires manual re-processing, leading to downtime and complexity.
Customizing routing profiles demands Lua scripting knowledge, and advanced use cases like building from source require C++ and DevOps expertise, beyond simple API consumption.
osrm-backend is an open-source alternative to the following products:
Mapbox Directions API is a web service that provides routing and navigation capabilities, calculating optimal routes between locations for driving, walking, or cycling.
A collection of APIs that allow developers to embed Google Maps features into websites and mobile applications.
A routing API service that provides turn-by-turn navigation, route calculation, and traffic-aware routing for applications.