Open Source Routing Machine (OSRM)
OSRM is a high-performance routing engine for OpenStreetMap data, providing an HTTP API for routing, map matching, distance tables, and more.

Open Source Routing Machine (OSRM) is a high-performance routing engine written in C++ that computes routes on OpenStreetMap data. It provides a production-oriented HTTP API and can also be used as a C++ library or via Node.js bindings.
Key Features
- Fast route computation optimized for large road networks
- HTTP API services for routing, nearest-point lookup, and distance/duration matrices
- Map matching for snapping noisy GPS traces to the road network
- Trip optimization endpoint using a traveling-salesman-style heuristic
- Generates vector tiles containing internal routing metadata
- Customizable routing profiles (e.g., car, bicycle, walking)
Use Cases
- Powering turn-by-turn navigation and routing in web or mobile applications
- Batch travel-time or distance matrix generation for logistics and dispatch
- Cleaning and matching GPS tracks to roads for analytics or data processing
Limitations and Considerations
- Requires an offline preprocessing pipeline (e.g., MLD or CH) on OSM extracts before serving requests
- Custom behavior depends on maintaining Lua-based profiles and understanding OSM tagging
OSRM is a strong choice when you need low-latency routing on OpenStreetMap data with a well-established API surface. It is especially suited to backend routing services and GIS workflows that require fast, repeatable computations at scale.



