Try our amazing public routing service at http://map.project-osrm.org/ or follow us on Twitter.
Support
About the Project
The Open Source Routing Machine (OSRM) is a C++ implementation of a high-performance routing engine for shortest paths in road networks.
It combines sophisticated routing algorithms with the open and free road network data of the OpenStreetMap (OSM) project.
Shortest path computation on a continental sized network can take up to several seconds if it is done without a so-called speedup-technique.
OSRM is able to compute and output a shortest path between any origin and destination within a few miliseconds.
Since it is designed with OpenStreetMap compatibility in mind, OSM data files can be easily imported.
A demo installation is sponsored by Karlsruhe Institute of Technology and previously by our friends at Geofabrik.
OSRM is under active development.
The key features of OSRM are:
- High Performance Routing Algorithm
- Easy import of OSM data files.
- Written entirely in C++ and available under the GNU Affero General Public License for anyone to use.
- Ability to handle continental sized networks.
- Influenced by current and ongoing academic research. [more info]
License
OSRM is free, open source, and available under the GNU Affero General Public License.
Companies with concerns about the AGPL should contact us to work something out.
Platforms supported
| Operating Systems |
Compilers |
Third Party dependencies |
Linux (kernel >= 2.6.25)
FreeBSD
Windows
Mac OS X (more or less)
|
g++ 4.2.3 (with warnings and unsupported)
g++ 4.3+
llvm-g++/dragonegg 2.8+ |
Boost 1.41+
libxml2 2.7+
scons 2.10+
stxxl 1.3.1+
libprotobuf 2.30+
|
Current version
Version 0.1 (July 10, 2010) is a baseline release. It has basic features. Version 0.2 (March 2011) is much faster and resource friendly. While it is safe to use this version, the code in git master branch is much more advanced.
Major improvements in version 0.3
- Better heuristics for preprocesssing
- Turn costs and restrictions
- Windows support (and Mac in principle)
- OSM file preprocessing multi-threaded
- Support for GCC 4.2 and also for systems not supporting OpenMP
- User-definable speed profile
- Better and more efficient polyline generalization
- many, many bug fixes
- many under-the-hood improvements
- For a detailed list, please read the Timeline.
|
|
Links/Download
|
|
Current Stable Version |
Previous Stable Version |
Development Version |
|
Download:
|
|
|
[v0.3b tarball] |
|
Git repository:
|
[see above]
|
[Browse] [Checkout]
|
[Browse]
[Checkout]
|
Copyrights and permissions to to reproduce
The text of this page is available for modification and reuse under the terms of the Creative Commons Attribution-Sharealike 3.0 Unported License and the GNU Free Documentation License (unversioned, with no invariant sections, front-cover texts, or back-cover texts).