[OSRM-talk] OSRM 5.0.0 Released

Patrick Niklaus patrick.niklaus at student.kit.edu
Sat Apr 23 11:12:20 UTC 2016


I'm proud to announce the 5.0.0 OSRM release. This is by far one of our biggest
releases in terms of lines of code changed, since... a while. It was a
real team effort featuring contributions from:

@akaiser, Aleksei Potov, Bas Couwenberg, Wilhelm Berg, Dane
Springmeyer, Daniel J. Hofmann, Daniel Patterson, David Low,
Johan Uhle, Jeff Miccolis, Karen Shea, Kerrick Staley, Lauren
Budorick, Lev Dragunov, Mathias Gug,
Michael Krasnyk, Moritz Kobitzsch, Mortada Mehyar and yours truly.

This release features a completely revamped API (both HTTP API and C++
library), a completely new guidance generation engine,
replacing the Ruby based cucumber tests suit with its Javascript
sibling cucumber-js and various other improvements and fixes.
See the detailed changelog at the end of this post.

Checkout the new documentation:


On the development side, we removed the two branch system of having a
`develop` and master `branch`.
`master` now is _unstable_ and `develop` was removed.  This model is
now implemented in both `osrm-backend` and `node-osrm`.
If you have a look at the structure of the source tree, you will
notice we also re-arranged it a lot to more match the module
Combined with consistent namespacing, this makes the code a lot easier
to navigate now.

Changes with regard 5.0.0 RC2:
- API:
  - if `geometry=geojson` is passed the resulting geometry can be a
LineString or Point
    depending on how many coordinates are present.
  - the removal of the summary field was revered. for `steps=flase`
the field will always be an empty string.

Changes with regard to 4.9.1:
- API:
  - BREAKING: Complete rewrite of the HTTP and library API. See
detailed documentation in the wiki.
  - BREAKING: The default coordinate order is now `longitude,
latidue`. Exception: Polyline geometry
      which follow the original Google specification of `latitdue, longitude`.
  - BREAKING: Polyline geometries now use precision 5, instead of previously 6
  - BREAKING: Removed GPX support
  - New service `tile` which serves debug vector tiles of the road network
  - Completely new engine for guidance generation:
     - Support for highway ramps
     - Support for different intersection types (end of street, forks, merges)
     - Instruction post-processing to merge unimportant instructions
     - Improved handling of roundabouts

- Tools:
  - BREAKING: Renamed osrm-prepare to osrm-contract
  - BREAKING: Removes profiles from osrm-contract, only needed in osrm-extract.
  - Abort processing in osrm-extract if there are no snappable edges remaining.
  - Added .properties file to osrm-extract ouput.
  - Enables the use of multiple segment-speed-files on the
osrm-contract command line

- Profile changes:
  - Remove movable bridge mode
  - Add `maxspeed=none` tag to car profile.
  - A `side_road` tag support for the OSRM car profile.

- Fixes:
  - Issue #2150: Prevents routing over delivery ways and nodes
  - Issue #1972: Provide uninstall target
  - Issue #2072: Disable alternatives by default and if core factor < 1.0
  - Issue #1999: Fix unpacking for self-loop nodes not in core.

- Infrastructure:
  - Cucumber test suit is now based on cucumber-js, removes Ruby as dependency
  - Updated to mapbox/variant v1.1
  - Updated to libosmium v2.6.1
  - Remove GeoJSON based debugging output, replaced by debug tiles

Obtain the new release of node-osrm via:

npm install osrm

Or obtain our C++ core engine here:



More information about the OSRM-talk mailing list