Open Source Routing Machine - C++ backend
Go to file
Patrick Niklaus c4b3cdfd80 Fix changing shared memory in multi-process setup (#3462)
This change fixes two bugs:

1. A dead-lock that occurs between osrm-datastore and libosrm when an
   old dataset is free during a data update. This happened because the
   mutexes where acquired in a different order.

2. A region is deleted eventhough it is still in use. This happens when
   libosrm gets overtaken by osrm-datastore, so the new dataset is in
   the same region the old one was.
2016-12-16 13:50:17 -08:00
.github Revert "Add simple code review checklist to PR template." 2016-12-06 17:21:38 -08:00
cmake Don't mark all lanes as designated when there are blank lane specifiers in the tag. 2016-12-15 10:55:16 +01:00
docker Don't mark all lanes as designated when there are blank lane specifiers in the tag. 2016-12-15 10:55:16 +01:00
docs Clarify API and ensure bearings returned to users are in the range 0-359 2016-12-15 10:59:17 +01:00
example Don't warn in example on 32bit only print message 2016-11-19 17:02:31 +01:00
features fix roundabout handling with lanes 2016-12-15 13:07:26 +01:00
fuzz Enable data flow guided fuzzing using traces 2016-08-19 13:59:59 +02:00
include Fix changing shared memory in multi-process setup (#3462) 2016-12-16 13:50:17 -08:00
profiles increase template depth on clang and gcc builds 2016-12-15 10:55:16 +01:00
scripts Bump SOL2 to v2.15.5 to fix OSX compilation problems. 2016-12-16 10:13:33 +01:00
src Adding the location validity access for lua scripting. 2016-12-16 16:02:24 +01:00
test Squashed 'third_party/mason/' content from commit cf3561b 2016-12-15 10:31:15 +00:00
third_party Bump SOL2 to v2.15.5 to fix OSX compilation problems. 2016-12-16 10:13:33 +01:00
unit_tests Changes Single Coordinate Geoms from Point to LineString, closes #3425. 2016-12-09 11:53:06 +01:00
.babelrc Restructure API docs so that they can be formatted with Docbox. (#3355) 2016-11-30 19:38:53 -08:00
.clang-format expose lanes as enums, adjusted for comments 2016-06-27 11:12:02 +02:00
.clang-tidy Integration scripts for Clang's Modernize and Tidy tool. 2015-09-22 17:32:32 +02:00
.cncc.style Add simple cncc file 2016-01-05 12:06:33 +01:00
.eslintrc Rewrite cucumber test suite in JS 2016-03-24 16:01:01 -07:00
.gitignore Squashed 'third_party/mason/' content from commit cf3561b 2016-12-15 10:31:15 +00:00
.gitmodules Removing Docs submodule 2012-12-26 18:29:16 +01:00
.travis.yml Squashed 'third_party/mason/' content from commit cf3561b 2016-12-15 10:31:15 +00:00
appveyor-build.bat Updated cmake version to 3.7.0-rc2 2016-10-28 12:42:36 -07:00
appveyor.yml Remove develop branch from appveyor 2016-04-23 17:55:18 +02:00
build-local.bat Updated cmake version to 3.7.0-rc2 2016-10-28 12:42:36 -07:00
CHANGELOG.md fix roundabout handling with lanes 2016-12-15 13:07:26 +01:00
CMakeLists.txt Enforce Boost>=1.62 for MSVC 2016-12-15 12:47:50 +01:00
codecov.yml Fix codecov.yml 2016-05-12 17:56:40 +02:00
CONTRIBUTING.md [skip ci] Add docs for contributing 2016-07-19 17:38:03 +02:00
cucumber.js Close GH-2795: Rewrite cucumber test caching (and support logic). Fixes #2745 2016-09-19 14:13:44 -07:00
Doxyfile.in Exclude new node_modules folder that might be around if test cases have been run. 2016-04-05 22:59:14 +02:00
LICENCE.TXT We are at 2016 for the license 2016-01-04 18:13:05 +01:00
package.json Restructure API docs so that they can be formatted with Docbox. (#3355) 2016-11-30 19:38:53 -08:00
profile.lua readding profile.lua 2013-07-02 22:51:21 +02:00
README.md Squashed 'third_party/mason/' content from commit cf3561b 2016-12-15 10:31:15 +00:00
taginfo.json support junction = circular in all profiles, add additional tests 2016-11-29 13:44:32 +01:00

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},
}