Open Source Routing Machine - C++ backend
C++ Cucumber JavaScript Lua CMake Shell Other
Latest commit 3f07a83 Dec 2, 2016 @danpat danpat committed on GitHub Add simple code review checklist to PR template.
Add some checkboxes for common, mechanical parts that we should aim to hit for all PRs.
Permalink
Failed to load latest commit information.
.github Add simple code review checklist to PR template. Dec 3, 2016
cmake support -flto with clang++ Dec 1, 2016
docker [skip ci] Update docker files to gcc 5 Jul 21, 2016
docs Restructure API docs so that they can be formatted with Docbox. (#3355) Dec 1, 2016
example Don't warn in example on 32bit only print message Nov 19, 2016
features Rember Intersection Shapes Dec 1, 2016
fuzz Enable data flow guided fuzzing using traces Aug 19, 2016
include Abstracts away over differences in IntersectionView and Intersection. Dec 2, 2016
profiles support junction = circular in all profiles, add additional tests Nov 29, 2016
scripts Restructure API docs so that they can be formatted with Docbox. (#3355) Dec 1, 2016
src fix extraction of coordinate along a way (#3397) Dec 2, 2016
test drop md5sum dependency, depend on node.js script Nov 12, 2016
third_party Upgrade to mapbox/variant 1.1.4 Dec 1, 2016
unit_tests Enforce iteration order so that tiles are encoded consistently on all… Dec 2, 2016
.babelrc Restructure API docs so that they can be formatted with Docbox. (#3355) Dec 1, 2016
.clang-format expose lanes as enums, adjusted for comments Jun 27, 2016
.clang-tidy Integration scripts for Clang's Modernize and Tidy tool. Sep 22, 2015
.cncc.style Add simple cncc file Jan 5, 2016
.eslintrc Rewrite cucumber test suite in JS Mar 24, 2016
.gitignore # This is a combination of 4 commits. Oct 28, 2016
.gitmodules Removing Docs submodule Dec 26, 2012
.travis.yml Make the binutil detection work the same for clang and gcc Dec 1, 2016
CHANGELOG.md Restructure API docs so that they can be formatted with Docbox. (#3355) Dec 1, 2016
CMakeLists.txt Variant got re-packaged, need to update search paths. (#3392) Dec 2, 2016
CONTRIBUTING.md [skip ci] Add docs for contributing Jul 19, 2016
Doxyfile.in Exclude new node_modules folder that might be around if test cases ha… Apr 5, 2016
LICENCE.TXT We are at 2016 for the license Jan 4, 2016
README.md Talk to us! Jul 28, 2016
appveyor-build.bat Updated cmake version to 3.7.0-rc2 Oct 28, 2016
appveyor.yml Remove develop branch from appveyor Apr 23, 2016
build-local.bat Updated cmake version to 3.7.0-rc2 Oct 28, 2016
codecov.yml Fix codecov.yml May 12, 2016
cucumber.js Close GH-2795: Rewrite cucumber test caching (and support logic). Fixes Sep 19, 2016
package.json Restructure API docs so that they can be formatted with Docbox. (#3355) Dec 1, 2016
profile.lua readding profile.lua Jul 2, 2013
taginfo.json support junction = circular in all profiles, add additional tests Nov 29, 2016

README.md

About

The Open Source Routing Machine is a high performance routing engine written in C++11 designed to run on OpenStreetMap data.

Current build status

build config status
Linux Build Status
Windows Build status
Coverage codecov

Contact

  • IRC: server irc.oftc.net, channel: #osrm (see: https://www.oftc.net, and for a webchat: https://webchat.oftc.net)
  • Mailinglist: https://lists.openstreetmap.org/listinfo/osrm-talk

Building

For instructions on how to build and run OSRM, please consult the Wiki.

To quickly try OSRM use our free and daily updated online service

Documentation

Full documentation

Quick start

Building OSRM assuming all dependencies are installed:

mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
sudo cmake --build . --target install

Loading preparing a dataset and starting the server:

osrm-extract data.osm.pbf -p profiles/car.lua
osrm-contract data.osrm
osrm-routed data.osrm

Running a query on your local server:

curl http://127.0.0.1:5000/route/v1/driving/13.388860,52.517037;13.385983,52.496891?steps=true&alternatives=true

Running a request against the Demo Server

First read the API usage policy.

Then run simple query with instructions and alternatives on Berlin:

curl https://router.project-osrm.org/route/v1/driving/13.388860,52.517037;13.385983,52.496891?steps=true&alternatives=true

References in publications

When using the code in a (scientific) publication, please cite

@inproceedings{luxen-vetter-2011,
 author = {Luxen, Dennis and Vetter, Christian},
 title = {Real-time routing with OpenStreetMap data},
 booktitle = {Proceedings of the 19th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems},
 series = {GIS '11},
 year = {2011},
 isbn = {978-1-4503-1031-4},
 location = {Chicago, Illinois},
 pages = {513--516},
 numpages = {4},
 url = {http://doi.acm.org/10.1145/2093973.2094062},
 doi = {10.1145/2093973.2094062},
 acmid = {2094062},
 publisher = {ACM},
 address = {New York, NY, USA},
}