OpenSource-Hub
O

osrm-backend

SHA-256
7.7k stars·Developer Tools·SHA-256 checksum verified

A C++ routing engine with HTTP API, C++ library, and Node.js bindings, offering route, nearest, table, match, trip, and tile services on OpenStreetMap data.

OSRM is a high-performance C++ routing engine for OpenStreetMap that can be self-hosted and run offline.

Core Features

  • Six core services: Nearest, Route, Table, Match, Trip, Tile
  • Two preprocessing pipelines: Contraction Hierarchies (CH) and Multi-Level Dijkstra (MLD)
  • Docker images for quick deployment
  • High-performance C++ implementation suitable for large-scale routing
  • HTTP API, C++ library, and Node.js bindings

What It Can't Do

  • Caveats: 1. Large region preprocessing can take hours and require 16GB+ RAM. 2. The public demo server has rate limits. 3. Default profile is for car; modify Lua config for bike/walk. 4. Ensure proper volume mounting permissions in Docker.

Use Cases

  • Self-hosted navigation service with no external API dependency
  • Logistics route optimization and distance matrix calculation
  • Academic research on large-scale traffic simulation

OSRM (Open Source Routing Machine) Backend is a high-performance, open-source routing engine written in C++ that uses OpenStreetMap data to compute driving, cycling, and walking routes. It offers a complete suite of services: Nearest (snap coordinates to roads), Route (fastest path), Table (distance/duration matrix), Match (GPS trace matching), Trip (Traveling Salesman Problem solver), and Tile (vector tiles with routing metadata). The engine supports two preprocessing algorithms: Contraction Hierarchies (CH) and Multi-Level Dijkstra (MLD), with MLD recommended for most use cases. It can be deployed via Docker with a single command and provides a demo server for quick testing. OSRM is self-hosted, fully offline-capable, and offers competitive performance compared to cloud-based APIs like Google Maps or GraphHopper, making it ideal for privacy-sensitive applications or high-volume routing needs.

Tags

routingnavigationopenstreetmapC++high-performanceself-hosteddocker

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Step 1: Install Docker and download an OpenStreetMap extract (e.g., from Geofabrik)

4

Step 2: Preprocess the data: run osrm-extract, osrm-partition, osrm-customize for MLD (or osrm-extract + osrm-contract for CH) using Docker

5

Step 3: Start routing server: docker run with osrm-routed on port 5000

Install Guide
  1. Step 1: Install Docker and download an OpenStreetMap extract (e.g., from Geofabrik)
  2. Step 2: Preprocess the data: run osrm-extract, osrm-partition, osrm-customize for MLD (or osrm-extract + osrm-contract for CH) using Docker
  3. Step 3: Start routing server: docker run with osrm-routed on port 5000
File Integrity

SHA-256 checksum verified

Checksum extracted from GitHub official Release page

SHA256 Checksum

7829d4a35e7de5cde63a04ccca5b9e9a04f1199552231da9872214a3ab44d5a1

This checksum is extracted from the GitHub Release page. Verify file integrity after download.

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

Remove the Docker image and local data: docker rmi ghcr.io/project-osrm/osrm-backend, then delete the .osm.pbf and .osrm files.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseBSD-2-Clause
Last Updated2026-06-26 03:40:12
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

5 FAQs

Similar Projects