Skip to content

Open Source Routing Machine (OSRM)

Server & OS Management

High‑performance OpenStreetMap routing engine written in C++

C++ Latest v26.6.4 · 6h ago Security brief →

Features

  • Nearest: snap coordinates to the nearest street segment
  • Route: compute fastest paths between points
  • Table: pairwise distance/duration matrix for a set of locations
  • Match: align noisy GPS traces onto the road network
  • Trip: greedy Traveling Salesman Problem solver

Recent releases

View all 8 releases →
No immediate action
v26.6.0 Breaking risk

Bicycle + Trip + Car profile + Extractor + API

v26.5.0 Bug fix
Notable features
  • Integrated osrm-bindings library (#7485)
  • Added winter_road and ice_road to restricted_highway_whitelist for profiles
Full changelog
  • 3c32a51bf - ci: use BACKEND_RELEASE_TOKEN for release dispatch
  • bab826352 - fix: merge conflict resolved
  • 3c5c796a8 - chore: bump version to 26.5.0
  • 552c6cfa1 - fix(ci): use right token
  • 1544378e4 - ci(release): use token on check out
  • 6e361cc7c - fix: support file paths containing spaces in CLI tools (#7511)
  • 4d04b385c - feat: integrate https://github.com/nilsnolde/osrm-bindings (#7485)
  • d0802a0be - fix: MSVC platform detection in isatty helper (#7521)
  • d0c706a0e - don't run workflows on forks (#7522)
  • 74d3fb16d - build: replace boost date time with std (#7514)
  • 9dc0584fb - build: remove unused boost::heap dependency (#7515)
  • 73e4f1ea2 - build: replace Boost.Iterator with C++20 iterators (#7510)
  • e0bf43485 - ci: add new pr title check (#7513)
  • 0eec0d128 - Remove scripts/tidy.sh (#7512)
  • 6cd00af30 - build: replace manual CAS implementation with atomic_ref (#7509)
  • 7580da293 - refactor: drop boost dependencies replaceable by C++20 stdlib (#7506)
  • e3aeddd7c - build: unvendor vtzero, provide custom vcpkg overlay (#7508)
  • e24588146 - fix(ci): silence most lld linker warnings (#7507)
  • b63d6b4d1 - build: replace vendored microtar with libarchive from vcpkg (#7495)
  • 4603631ca - build: generate flatbuffers headers at build time, remove version pin (#7488)
  • 617ddaf01 - chore(deps-dev): bump postcss from 8.5.6 to 8.5.12 (#7505)
  • 85fbefad1 - build: migrate from Conan + vendored deps to vcpkg manifest mode (#7487)
  • 11cf4e044 - fix: invalid TurnLaneData comparators (#7504)
  • 105448a80 - fix(link): permanent discord invite (#7502)
  • 31b5238a4 - Change bzip2 and xz-utils to not be shared (#7493)
  • c3d1657a7 - chore(deps): bump uuid and @cucumber/cucumber (#7500)
  • e90fad378 - chore(deps-dev): bump fast-xml-parser from 5.5.11 to 5.7.0 (#7498)
  • b0e827b6e - feat(profiles): add winter_road and ice_road to restricted_highway_whitelist (#7496)
  • a27573f34 - ci(docker): fix tagging of artefacts
  • e64f23748 - ci(fix): casing of ghcr repo name (#7491)
  • 9769b13ad - ci(fix): add PAT to release workflow (#7490)
v26.4.1 Bug fix
Notable features
  • Convey tag for escalators and moving walkways
  • Add winter_road/ice_road profiles with surface=ice/snow to car.lua
Full changelog
  • 8a1258c5b - chore: bump version to 26.4.1
  • 4ea14441b - feat: conveying tag for escalators and moving walkways (#7466)
  • 43d68f399 - ci: use native ARM machines in docker build (#7481)
  • aa65f4699 - fix(profiles): add winter_road/ice_road and surface=ice/snow to car.lua (#7465)
  • b3b0f38db - ci: switch format-taginfo-docs job runner from ubuntu-24.04 to ubuntu-slim (#7483)
  • 7f88b3f4b - ci: upgrade macOS versions in CI workflow to 26 (#7486)
  • 9e1c57db1 - ci: propagate docker/metadata-action labels to published images (#7484)
  • fca5473af - ci: fix semver pattern in Docker workflow
  • a264ce0a7 - fix(docs): make docs deployable to subdir (#7479)
  • 913dfe3ca - ci: build on arm64 (#7482)
  • aa6f3ace8 - ci: fix propagation of tags in docker build (#7480)
  • 8f87a542e - Bump follow-redirects from 1.15.11 to 1.16.0 (#7478)
  • 20144e465 - ci: build docker image with specified revision
  • b78217f09 - ci: provide ability to specify tag for which to build docker image
  • 79fe90918 - fix(mem usage): XORFastHash lost lines (#7456)
  • b066f6a9a - fix: make docker build triggerable (#7477)
  • 160e5009d - Update release-monthly.yml
v26.4.0 Breaking risk
Security fixes
  • CVE-2026-23745
Full changelog
  • d3e0a3543 - fix: restore NPM_TOKEN auth and add --access public for scoped package publish (#7475)
  • 1da889d02 - fix: use npm install --ignore-scripts to avoid native build in release (#7474)
  • 4abcdb03e - fix: add npm install step before npm publish in release workflow (#7473)
  • ce30324cc - fix: improve release workflow timeout and changelog generation (#7472)
  • 63fba02a9 - fix: configure git identity in release action before tagging (#7471)
  • 82b833553 - ci: enable npm trusted publishing (#7470)
  • eec4d768e - feat: enforce Conventional Commits for PR titles and retire CHANGELOG.md (#7469)
  • 89ae0bd9c - feat: implement automated monthly releases with YY-MM-patchlevel versioning (#7468)
  • 7a6cc9eb8 - Fix microtar tar header size field on MinGW Windows (#7467)
  • e028bbb0f - chore: upgrade vite to 6.4.2 via overrides for vitepress (#7463)
  • f2adcec6c - Improve utility scripts with modern dependencies and enhanced features (#7461)
  • 24d53243d - Replace d3-queue with native async/await across test infrastructure (#7458)
  • 738d41270 - Move shared memory lock files out of /tmp to prevent cleanup (#7443)
  • c927bb2ad - Upgrade GitHub CI actions to latest versions (#7457)
  • 678c58bde - Revert "Change Windows Node.js version from 24 to 20 (#7452)" (#7455)
  • 567980e77 - Replace node-cmake w/ CMake.js. Fix Windows Node.js build failure for Node.js v22+ (dropped x86 support) (#7451)
  • b28899e29 - Bump lodash from 4.17.23 to 4.18.1 (#7450)
  • 3c88da821 - Change Windows Node.js version from 24 to 20 (#7452)
  • 25386254b - Upgrade CI Node.js to supported 22/24/25 set (#7449)
  • a72e46326 - Migrate all parsers from Boost.Spirit Qi to X3 (#7432)
  • 27a4419f4 - Replace XORFastHash by ANDHash (#7400)
  • 1b27ef8b5 - Fix windows build issue (#7437)
  • ed0e74729 - fix: sol2 header to allow for empty lua macro definitions (#7441)
  • 9000f51d1 - fix: make osrm FetchContent compatible (#7440)
  • f9b562b9e - bicycle: respect cycleway:*=separate tags (#7431)
  • b94847b88 - Bring back library example (#7430)
  • 7134fbe44 - Allow returning geometry by leg (#7256)
  • 8b211b995 - Bump picomatch from 2.3.1 to 2.3.2 (#7429)
  • d7a5e551d - foot: respect foot=use_sidepath and sidewalk:*=separate tags (#7426)
  • c3dc1486c - fix: Nearest API returning node ID 0 at start of one-way road (#7427)
  • 4c97bacff - Exclude highway=road from foot and bicycle profiles (#7424)
  • 5086fb38b - Rename NameTable→StringTable and name_id→string_view_id (#7406)
  • 08ad0309e - Fix compilation error in raster_source (#7423)
  • 828973b82 - Fix Lua error with decimal lane values in osrm-extract (#7420)
  • 89ab60dd6 - docs(readme): add support section with contribution and funding paths (#7421)
  • 1c6943e21 - Update funding sources in FUNDING.yml
  • c4675c0be - Fix negative route durations from negative turn duration penalties (#5967) (#7416)
  • 844dc290d - fix: don't prune real highways that also carry a proposed=* tag (#7415)
  • b23304444 - fix: [Bug Report] osrm-routed segfaults/asserts (#7412)
  • b5b6803e0 - Es6 nodejs tests (#7401)
  • 6d41fcd49 - chore: bump flatted in lockfile (#7414)
  • 5b026dc74 - Fix bicycle profile: cap speed at 21 km/h and add test coverage for high maxspeed values (#7402)
  • 9c0583e77 - fix: upgrade tar to >=7.5.11 (GHSA-9ppj-qmqm-q256) (#7410)
  • 508dcd1a3 - Add configurable lane_markings=no penalty to car profile (#7409)
  • 314c566cd - Add Lua 5.5 compatibility stopgap patch (#7404)
  • 5d9617fe3 - fix: upgrade tar to >=7.5.10 (GHSA-qffp-2rhf-9h96) (#7403)
  • ff327c465 - Enable bugprone-empty-catch and eliminate empty catch handlers in core code (#7396)
  • 75cca4956 - Bump minimatch from 10.2.2 to 10.2.4 (#7399)
  • 1657f2e0d - Bump rollup from 4.57.1 to 4.59.0 (#7398)
  • e3ff5404d - Add Latvia living_street default speed mapping (LV:living_street → 20 km/h) for car profile and taginfo (#7386)
  • 758197d9e - Remove superfluous boost includes (#7384)
  • a74567bcd - Add vehicle-specific maximum speed profiles with configurable upper bounds (#7383)
  • 6c7d4ac5e - Reenable temporarily disabled CI jobs (#7357)
  • ba2f4ec59 - Fix clang-tidy-21 warnings (#7381)
  • 0b87dc71f - Fix hashFiles timeout in GitHub Actions workflow on macOS runners (#7382)
  • 362b388d7 - Replace boost::format with libfmt (#7363)
  • 657c3dc1a - Fix npm dependency issues: pin esbuild, resolve deprecations and vulnerabilities (#7374)
  • 8a7f6cfda - Add regression tests for zero-speed segment updates (#7341)
  • 80564bb6b - Upgrade tar to 7.5.9 to fix CVE (#7364)
  • 8a125eb65 - Upgrade FlatBuffers from 24.3.25 to 25.9.23 (#7360)
  • 67619e588 - add argentine speed exceptions (#7286)
  • 5c6e615c6 - Upgrade clang-format from version 15 to 18 (#7359)
  • fff162da2 - Add support for maxweightrating tag in car profile (#7352)
  • 0b41f90dc - Add --output option to osrm-extract for custom output base path (#7349)
  • 2ca7911b0 - Add --list-inputs option to all OSRM tools for deployment scripts (#7350)
  • cb4d49f42 - Upgrade libosmium from 2.20.0 to 2.23.0 (#7356)
  • dbca3c384 - Migrate API docs generation to vitepress (#7355)
  • 809615f2c - Add osrm_ prefix to custom targets and ALIAS targets for FetchContent compatibility (#7329)
  • df3f5740d - Emit warning when osrm-extract encounters ways referencing missing nodes (#7351)
  • d8ff021d2 - Fix documentation build ESM/CommonJS conflict (#7348)
  • 86c6e4f14 - Add policy for AI contributions (#7345)
  • 81e15d010 - Add AGENT.md to enforce coding guidelines (#7346)
  • f9e90b8f8 - Apply configurable penalty to gates in car profile (#7334)
  • a5a3ba6b9 - Add configurable max_collapse_distance property to Lua profiles for p… (#7344)
  • e248005d8 - Make maximum header size configurable (#7336)
  • 9d837fa31 - Set hwloc:shared=True in Conan config as required by onetbb (#7343)
  • fc5dfe2be - Fix crash when route starts/ends at manoeuvre relation via node (#7339)
  • 0a2edf87f - Use weak_ptr and wait for shutdown (#7337)
  • 010119855 - Fix (another) tar vulnerbility (#7338)
  • 41a5ee52f - Add the PSV vehicle subtypes to the access_tag_blacklist of the car profile (taxi, share_taxi, minibus, and bus) #7295 (#7295)
  • f5d5790f8 - Port osrm-routed to use boost::beast (#7328)
  • 6e35535ee - Update node-tar for CVE-2026-23745 (#7335)
  • b8a94c7c3 - Parallel cucumbers (#7309)
  • c98537b18 - Upgrade npm dependencies to latest versions (#7333)
  • 936fcfeec - Add audible fence exception for barrier routing (#7331)
  • 1e1d5fad9 - Fix macOS and Windows shared mem wait for detach (#7321)
  • 8f7b36f23 - Fixed speed limits in Czech Republic (#7279)
  • 655ceb870 - Add sidepath name fallback using is_sidepath:of:name and street:name tags (#7288)
  • 4c9ffaa1c - Fix compilation in relase with LTO with gcc >=14 (#7327)
  • cf4cdb307 - Fix uncaught exceptions (#7324)
  • ee00b9eea - fix an assertion that would fire erroneously fire due to int overflow (#7257)
  • a1f0cc26b - Fix std::is_trivial deprecation and clang-tidy warnings (#7291)
  • 877ea005d - Don’t route on motorroads by foot or bicycle (#6697) (#7316)
  • 58bf4c174 - Update README.md
  • 64726e77b - Fix clang-21 warnings (#7303)
  • 29bbad5f9 - Limit max exclude classes to 7 (#7322)
  • b69d940be - Fix issue 7296 (#7300)
  • e28e439cb - cycleway value should fall back to cycleway:both if available (#7314)
  • 00565a7fe - Remove separate osrm_guidance library, fixes #6954 (#7315)
  • 9dbb8a14e - Disable array bounds warning until GCC is fixed (#7317)
  • 8dfc6bfa2 - [lua] Added to_number_uint. (#7289)
  • 200fd587c - Disable debug builds for now (#7318)
  • b9e5c820d - Fix documentation build by replacing removed --polyglot flag (#7292)
  • 4ec3fcfd1 - Initial commit (#7304)
  • 2d6e5651e - Add SHM_LOCK_DIR environment variable for containerized deployments (memory leak fix) (#7312)
  • 27b3ea1a2 - Fix Node.js binding path to match node-pre-gyp versioning (#7277)
  • e6d8fbdc4 - Fix JSON rendering of large OSM IDs and handle NaN/Infinity gracefully (#7311)
  • 01605f758 - Compilation fixes (#7263)
  • 145f6de6d - Add std::format compatibility layer and fix node_osrm C++17/C++20 ABI mismatch (#7261)
  • 51f5bdcd4 - Reduce the number of MSVC warnings in CI workflow builds on Windows (#7254)
  • 1ba78bfc1 - Upgrade fmt from 10.2.1 to 11.2.0 (#7243)
  • e83f36186 - Upgrade protozero from 1.7.1 to 1.8.1 (#7244)
  • 0ae940c31 - Replace std::is_trivial (#7248)
  • 8fb25ea8f - Add libcap-setcap to alpine dockerfile (#7242)
  • e9a97def9 - Improve lint rules, update npm packages, add pre-commit hook (#7234)
  • bec494709 - Convert remaining scripts from CommonJS to ESM format and use flatbuffers npm package (#7233)
  • d81012111 - Convert scripts from CommonJS to modern ESM format (#7230)
  • a2e159d0d - Fix build with Boost 1.89.0 (#7220)
  • 14e1713b4 - #7180: Upgrade Cucumber-js to v12 (#7221)
  • 7d46e4100 - Fix build on FreeBSD. (#7206)
  • c467cdf80 - Improve spelling and wording in source code, comments and documentation (#7215)
  • 560ed5c0e - Update eslint, and consistently format all JS code (#7170)
  • a49d64f8f - Update first batch of npm dependencies (#7169)
  • f5e924189 - Update changelog for v6.0.0 (#7154)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
7,768
Forks
3,941
Languages
C++ Gherkin JavaScript
Downloads/week
1,451 ↑9%
NPM Maintainers
3
Contributors
230

Install & Platforms

Install via
docker

Beta — feedback welcome: [email protected]