OSRM Backend is a high-performance routing engine written in C++ that processes OpenStreetMap data to compute routes and related navigation services.
The tool solves the problem of efficiently finding optimal paths through road networks at scale. It works by preprocessing OpenStreetMap data using one of two algorithms—Contraction Hierarchies or Multi-Level Dijkstra—to create a queryable index, then serving routing requests through an HTTP API, C++ library interface, or Node.js wrapper. The available services include route finding, distance matrix computation, GPS trace snapping to roads, traveling salesman problem solving, nearest-point snapping, and vector tile generation with routing metadata.
Teams building navigation systems, logistics platforms, or map-based applications should consider this tool if they need fast, self-hosted routing on OpenStreetMap data. The project recommends Multi-Level Dijkstra as the default preprocessing pipeline for most use cases, with Contraction Hierarchies reserved for specific scenarios like very large distance matrices. Docker images are provided to simplify deployment, and the tool can be tried immediately using the hosted demo server.
The project maintains active community engagement through Discord and social channels, welcoming contributions in the form of patches, code reviews, and issue triage. Development is supported through both volunteer effort and optional financial sponsorship mechanisms.