Skip to contents

DOI

The goal of osrm.backend is to be a companion to osrm R package https://github.com/riatelab/osrm:

  • provide single line quick start with osrm_start() function that does everything automatically to run local OSRM backend server, no other setup is required;

  • easily install osrm.backend on major operating systems (Linux, Windows, MacOS);

  • provide wrapper functions to prepare data for osrm routing;

  • provide wrapper to start/stop local OSRM backend server.

OSRM backend binaries

By default, osrm.backend installs OSRM from e-kotov/osrm-binaries. These are immutable OSRM backend binary releases built from upstream OSRM source tags primarily for this R package.

The default binary releases are different from the official upstream OSRM release assets:

  • they contain backend command-line executables such as osrm-extract, osrm-contract, osrm-customize, osrm-partition, and osrm-routed;
  • they do not include upstream node_osrm Node.js package artifacts;
  • they use predictable archive names for Linux, macOS, and Windows;
  • they bundle runtime libraries where practical, so the archives are more portable for R users than relying on a local OSRM build toolchain;
  • they are live-tested by this package on Linux, Linux arm64, macOS, and Windows.

The official upstream binaries from Project-OSRM/osrm-backend are still available with:

osrm_install(osrm_binaries_provider = "official")

That provider is kept as a compatibility option. The main supported and tested installation path is the default e-kotov/osrm-binaries provider. See the OSRM binary providers vignette for details.

Installation

Install the latest stable release of osrm.backend from CRAN with:

install.packages("osrm.backend")

You can install the development version of osrm.backend from R Universe with:

install.packages('osrm.backend',
 repos = c('https://e-kotov.r-universe.dev', 'https://cloud.r-project.org')
)

or from GitHub repo with:

# install.packages("pak")
pak::pak("e-kotov/osrm.backend")

You can prepare the OpenStreetMap data for routing with one function osrm_start(<path_to_osm_file_or_folder_with_osm_file>), set the osrm.server option to http://localhost:5001/ and use all the osrm functions as usual. You do not need to have osrm-backend installed or have Docker to run osrm-backend from a container, everything is handled automatically on all major operating systems. Just follow the Get started guide. For advanced control over each step of the process, see the full function reference.

OSRM Graphical User Interface demo

osrm GUI demo 1
osrm GUI demo 1
osrm GUI demo 2
osrm GUI demo 2
osrm GUI demo 3
osrm GUI demo 3

Auto-tested OSRM releases (generated)

OS Badge Validated releases Notes
LINUX LINUX badge v26.7.3, v26.7.2, v26.7.1, v26.7.0, v26.6.5, v26.6.4, v26.6.3, v26.6.2, v26.6.1, v26.6.0, v26.5.0, v26.4.1, v26.4.0, v6.0.0, v5.27.1 v5.27.1 - v26.7.3
MACOS MACOS badge v26.7.3, v26.7.2, v26.7.1, v26.7.0, v26.6.5, v26.6.4, v26.6.3, v26.6.2, v26.6.1, v26.6.0, v26.5.0, v26.4.1, v26.4.0, v6.0.0, v5.27.1 v5.27.1 - v26.7.3
WINDOWS WINDOWS badge v26.7.3, v26.7.2, v26.7.1, v26.7.0, v26.6.5, v26.6.4, v26.6.3, v26.6.2, v26.6.1, v26.6.0, v26.5.0, v26.4.1, v26.4.0, v6.0.0, v5.27.1 v5.27.1 - v26.7.3

Badge source: badges branch — raw JSON files (e.g. osrm_versions_ubuntu.json).