Skip to content

Releases: Project-OSRM/osrm-backend

Release 26.4.0

12 Apr 18:20
d3e0a35

Choose a tag to compare

  • d3e0a35 - fix: restore NPM_TOKEN auth and add --access public for scoped package publish (#7475)
  • 1da889d - fix: use npm install --ignore-scripts to avoid native build in release (#7474)
  • 4abcdb0 - fix: add npm install step before npm publish in release workflow (#7473)
  • ce30324 - fix: improve release workflow timeout and changelog generation (#7472)
  • 63fba02 - fix: configure git identity in release action before tagging (#7471)
  • 82b8335 - ci: enable npm trusted publishing (#7470)
  • eec4d76 - feat: enforce Conventional Commits for PR titles and retire CHANGELOG.md (#7469)
  • 89ae0bd - feat: implement automated monthly releases with YY-MM-patchlevel versioning (#7468)
  • 7a6cc9e - Fix microtar tar header size field on MinGW Windows (#7467)
  • e028bbb - chore: upgrade vite to 6.4.2 via overrides for vitepress (#7463)
  • f2adcec - Improve utility scripts with modern dependencies and enhanced features (#7461)
  • 24d5324 - Replace d3-queue with native async/await across test infrastructure (#7458)
  • 738d412 - Move shared memory lock files out of /tmp to prevent cleanup (#7443)
  • c927bb2 - Upgrade GitHub CI actions to latest versions (#7457)
  • 678c58b - Revert "Change Windows Node.js version from 24 to 20 (#7452)" (#7455)
  • 567980e - Replace node-cmake w/ CMake.js. Fix Windows Node.js build failure for Node.js v22+ (dropped x86 support) (#7451)
  • b28899e - Bump lodash from 4.17.23 to 4.18.1 (#7450)
  • 3c88da8 - Change Windows Node.js version from 24 to 20 (#7452)
  • 2538625 - Upgrade CI Node.js to supported 22/24/25 set (#7449)
  • a72e463 - Migrate all parsers from Boost.Spirit Qi to X3 (#7432)
  • 27a4419 - Replace XORFastHash by ANDHash (#7400)
  • 1b27ef8 - Fix windows build issue (#7437)
  • ed0e747 - fix: sol2 header to allow for empty lua macro definitions (#7441)
  • 9000f51 - fix: make osrm FetchContent compatible (#7440)
  • f9b562b - bicycle: respect cycleway:*=separate tags (#7431)
  • b94847b - Bring back library example (#7430)
  • 7134fbe - Allow returning geometry by leg (#7256)
  • 8b211b9 - Bump picomatch from 2.3.1 to 2.3.2 (#7429)
  • d7a5e55 - foot: respect foot=use_sidepath and sidewalk:*=separate tags (#7426)
  • c3dc148 - fix: Nearest API returning node ID 0 at start of one-way road (#7427)
  • 4c97bac - Exclude highway=road from foot and bicycle profiles (#7424)
  • 5086fb3 - Rename NameTable→StringTable and name_id→string_view_id (#7406)
  • 08ad030 - Fix compilation error in raster_source (#7423)
  • 828973b - Fix Lua error with decimal lane values in osrm-extract (#7420)
  • 89ab60d - docs(readme): add support section with contribution and funding paths (#7421)
  • 1c6943e - Update funding sources in FUNDING.yml
  • c4675c0 - Fix negative route durations from negative turn duration penalties (#5967) (#7416)
  • 844dc29 - fix: don't prune real highways that also carry a proposed=* tag (#7415)
  • b233044 - fix: [Bug Report] osrm-routed segfaults/asserts (#7412)
  • b5b6803 - Es6 nodejs tests (#7401)
  • 6d41fcd - chore: bump flatted in lockfile (#7414)
  • 5b026dc - Fix bicycle profile: cap speed at 21 km/h and add test coverage for high maxspeed values (#7402)
  • 9c0583e - fix: upgrade tar to >=7.5.11 (GHSA-9ppj-qmqm-q256) (#7410)
  • 508dcd1 - Add configurable lane_markings=no penalty to car profile (#7409)
  • 314c566 - Add Lua 5.5 compatibility stopgap patch (#7404)
  • 5d9617f - fix: upgrade tar to >=7.5.10 (GHSA-qffp-2rhf-9h96) (#7403)
  • ff327c4 - Enable bugprone-empty-catch and eliminate empty catch handlers in core code (#7396)
  • 75cca49 - Bump minimatch from 10.2.2 to 10.2.4 (#7399)
  • 1657f2e - Bump rollup from 4.57.1 to 4.59.0 (#7398)
  • e3ff540 - Add Latvia living_street default speed mapping (LV:living_street → 20 km/h) for car profile and taginfo (#7386)
  • 758197d - Remove superfluous boost includes (#7384)
  • a74567b - Add vehicle-specific maximum speed profiles with configurable upper bounds (#7383)
  • 6c7d4ac - Reenable temporarily disabled CI jobs (#7357)
  • ba2f4ec - Fix clang-tidy-21 warnings (#7381)
  • 0b87dc7 - Fix hashFiles timeout in GitHub Actions workflow on macOS runners (#7382)
  • 362b388 - Replace boost::format with libfmt (#7363)
  • 657c3dc - Fix npm dependency issues: pin esbuild, resolve deprecations and vulnerabilities (#7374)
  • 8a7f6cf - Add regression tests for zero-speed segment updates (#7341)
  • 80564bb - Upgrade tar to 7.5.9 to fix CVE (#7364)
  • 8a125eb - Upgrade FlatBuffers from 24.3.25 to 25.9.23 (#7360)
  • 67619e5 - add argentine speed exceptions (#7286)
  • 5c6e615 - Upgrade clang-format from version 15 to 18 (#7359)
  • fff162d - Add support for maxweightrating tag in car profile (#7352)
  • 0b41f90 - Add --output option to osrm-extract for custom output base path (#7349)
  • 2ca7911 - Add --list-inputs option to all OSRM tools for deployment scripts (#7350)
  • cb4d49f - Upgrade libosmium from 2.20.0 to 2.23.0 (#7356)
  • dbca3c3 - Migrate API docs generation to vitepress (#7355)
  • 809615f - Add osrm_ prefix to custom targets and ALIAS targets for FetchContent compatibility (#7329)
  • df3f574 - Emit warning when osrm-extract encounters ways referencing missing nodes (#7351)
  • d8ff021 - Fix documentation build ESM/CommonJS conflict (#7348)
  • 86c6e4f - Add policy for AI contributions (#7345)
  • 81e15d0 - Add AGENT.md to enforce coding guidelines (#7346)
  • f9e90b8 - Apply configurable penalty to gates in car profile (#7334)
  • a5a3ba6 - Add configurable max_collapse_distance property to Lua profiles for p… (#7344)
  • e248005 - Make maximum header size configurable (#7336)
  • 9d837fa - Set hwloc:shared=True in Conan config as required by onetbb (#7343)
  • fc5dfe2 - Fix crash when route starts/ends at manoeuvre relation via node (#7339)
  • 0a2edf8 - Use weak_ptr and wait for shutdown (#7337)
  • 0101198 - Fix (another) tar vulnerbility (#7338)
  • 41a5ee5 - Add the PSV vehicle subtypes to the access_tag_blacklist of the car profile (taxi, share_taxi, minibus, and bus) #7295 (#7295)
  • f5d5790 - Port osrm-routed to use boost::beast (#7328)
  • 6e35535 - Update node-tar for CVE-2026-23745 (#7335)
  • b8a94c7 - Parallel cucumbers (#7309)
  • c98537b - Upgrade npm dependencies to latest versions (#7333)
  • 936fcfe - Add audible fence exception for barrier routing (#7331)
  • 1e1d5fa - Fix macOS and Windows shared mem wait for detach (#7321)
  • 8f7b36f - Fixed speed limits in Czech Republic (#7279)
  • 655ceb8 - Add sidepath name fallback using is_sidepath:of:name and street:name tags (#7288)
  • 4c9ffaa - Fix compilation in relase with LTO with gcc >=14 (#7327)
  • cf4cdb3 - Fix uncaught exceptions (#7324)
  • ee00b9e - fix an assertion that would fire erroneously fire due to int overflow (#7257)
  • a1f0cc2 - Fix std::is_trivial deprecation and clang-tidy warnings (#7291)
  • 877ea00 - Don’t route on motorroads by foot or bicycle (#6697) (#7316)
  • 58bf4c1 - Update README.md
  • 64726e7 - Fix clang-21 warnings (#7303)
  • 29bbad5 - Limit max exclude classes to 7 (#7322)
  • b69d940 - Fix issue 7296 (#7300)
  • e28e439 - cycleway value should fall back to cycleway:both if available (#7314)
  • 00565a7 - Remove separate osrm_guidance library, fixes #6954 (#7315)
  • 9dbb8a1 - Disable array bounds warning until GCC is fixed (#7317)
  • 8dfc6bf - [lua] Added to_number_uint. (#7289)
  • 200fd58 - Disable debug builds for now (#7318)
  • b9e5c82 - Fix documentation build by replacing removed --polyglot flag (#7292)
  • 4ec3fcf - Initial commit (#7304)
  • 2d6e565 - Add SHM_LOCK_DIR environment variable for containerized deployments (memory leak fix) (#7312)
  • 27b3ea1 - Fix Node.js binding path to match node-pre-gyp versioning (#7277)
  • e6d8fbd - Fix JSON rendering of large OSM IDs and handle NaN/Infinity gracefully (#7311)
  • 01605f7 - Compilation fixes (#7263)
  • 145f6de - Add std::format compatibility layer and fix node_osrm C++17/C++20 ABI mismatch (#7261)
  • 51f5bdc - Reduce the number of MSVC warnings in CI workflow builds on Windows (#7254)
  • 1ba78bf - Upgrade fmt from 10.2.1 to 11.2.0 (#7243)
  • e83f361 - Upgrade protozero from 1.7.1 to 1.8.1 (#7244)
  • 0ae940c - Replace std::is_trivial (#7248)
  • 8fb25ea - Add libcap-setcap to alpine dockerfile (#7242)
  • e9a97de - Improve lint rules, update npm packages, add pre-commit hook (#7234)
  • bec4947 - Convert remaining scripts from CommonJS to ESM format and use flatbuffers npm package (#7233)
  • d810121 - Convert scripts from CommonJS to modern ESM format (#7230)
  • a2e159d - Fix build with Boost 1.89.0 (#7220)
  • 14e1713 - #7180: Upgrade Cucumber-js to v12 (#7221)
  • 7d46e41 - Fix build on FreeBSD. (#7206)
  • c467cdf - Improve spelling and wording in source code, comments and documentation (#7215)
  • 560ed5c - Update eslint, and consistently format all JS code (#7170)
  • a49d64f - Update first batch of npm dependencies (#7169)
  • f5e9241 - Update changelog for v6.0.0 (#7154)

v6.0.0

21 Apr 10:43
054b0a6

Choose a tag to compare

🚀 OSRM V6.0.0 is here! This major release introduces exciting new features and improvements:

  • Obstacle Support: Generic support for obstacles enhances routing flexibility.
  • Pedestrian Routing: Routes now include highways marked as platforms.
  • Performance Boosts: Micro-optimizations improve API performance across Route, Table, Trip, and Match.
  • Modernized Build System: Upgraded to Clang 15, Conan 2.x, and Debian Bookworm for better compatibility.
  • NodeJS Updates: Transitioned to Node-API, dropping support for older Node versions.
  • Enhanced Testing: Comprehensive CI updates and new unit tests ensure reliability.
  • Optimized Codebase: Reduced dependencies and improved memory efficiency.

What's Changed

Read more

v6.0.0-RC.2

14 Apr 18:44
054b0a6

Choose a tag to compare

v6.0.0-RC.2 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v6.0.0-rc.1...v6.0.0-rc.2

v6.0.0-RC.1

20 Mar 13:32
a1a4237

Choose a tag to compare

v6.0.0-RC.1 Pre-release
Pre-release

What's Changed

Read more

v5.27.1

14 Oct 16:25

Choose a tag to compare

  • Changes from 5.27.0
    • Misc:
      • FIXED: Revert back to using custom HTTP parser instead of Boost.Beast. #6407
      • FIXED: Fix bug with large HTTP requests leading to Bad Request in osrm-routed. #6403
    • Routing:
      • CHANGED: Add support for surface=metal,grass_paver,woodchips in bicyle profile. #6395

v5.27.0

10 Oct 12:46

Choose a tag to compare

  • Changes from 5.26.0
    • API:
      • ADDED: Add Flatbuffers support to NodeJS bindings. #6338
      • CHANGED: Add data_version field to responses of all services. #5387
      • FIXED: Use Boost.Beast to parse HTTP request. #6294
      • FIXED: Fix inefficient osrm-routed connection handling #6113
      • FIXED: Fix HTTP compression precedence #6113
    • NodeJS:
      • FIXED: Support skip_waypoints in Node bindings #6060
    • Misc:
      • ADDED: conanbuildinfo.json for easy reading of dependencies #6388
      • CHANGED: Improve performance of JSON rendering. Fix undefined behaviour in JSON numbers formatting. #6380
      • ADDED: Add timestamps for logs. #6375
      • CHANGED: Improve performance of map matching via getPathDistance optimization. #6378
      • CHANGED: Optimize RestrictionParser performance. #6344
      • ADDED: Support floats for speed value in traffic updates CSV. #6327
      • CHANGED: Use Lua 5.4 in Docker image. #6346
      • CHANGED: Remove redundant nullptr check. #6326
      • CHANGED: missing files list is included in exception message. #5360
      • CHANGED: Do not use deprecated Callback::Call overload in Node bindings. #6318
      • FIXED: Fix distance calculation consistency. #6315
      • FIXED: Fix performance issue after migration to sol2 3.3.0. #6304
      • CHANGED: Pass osm_node_ids by reference in osrm::updater::Updater class. #6298
      • FIXED: Fix bug with reading Set values from Lua scripts. #6285
      • FIXED: Bug in bicycle profile that caused exceptions if there is a highway=bicycle in the data. #6296
      • FIXED: Internal refactoring of identifier types used in data facade #6044
      • CHANGED: Update docs to reflect recent build and dependency changes #6383
    • Build:
      • REMOVED: Get rid of Mason. #6387
      • CHANGED: Use clang-format from CI base image. #6391
      • ADDED: Build Node bindings on Windows. #6334
      • ADDED: Configure cross-compilation for Apple Silicon. #6360
      • CHANGED: Use apt-get to install Clang on CI. #6345
      • CHANGED: Fix TBB in case of Conan + NodeJS build. #6333
      • CHANGED: Migrate to modern TBB version. #6300
      • CHANGED: Enable performance-move-const-arg clang-tidy check. #6319
      • CHANGED: Use the latest node on CI. #6317
      • CHANGED: Migrate Windows CI to GitHub Actions. #6312
      • ADDED: Add smoke test for Docker image. #6313
      • CHANGED: Update libosmium to version 2.18.0. #6303
      • CHANGED: Remove EXACT from find_package if using Conan. #6299
      • CHANGED: Configure Undefined Behaviour Sanitizer. #6290
      • CHANGED: Use Conan instead of Mason to install code dependencies. #6284
      • CHANGED: Migrate to C++17. Update sol2 to 3.3.0. #6279
      • CHANGED: Update macOS CI image to macos-11. #6286
      • CHANGED: Enable even more clang-tidy checks. #6273
      • CHANGED: Configure CMake to not build flatbuffers tests and samples. #6274
      • CHANGED: Enable more clang-tidy checks. #6270
      • CHANGED: Configure clang-tidy job on CI. #6261
      • CHANGED: Use Github Actions for building container images #6138
      • CHANGED: Upgrade Boost dependency to 1.70 #6113
      • CHANGED: Upgrade Ubuntu CI builds to 20.04 #6119
      • CHANGED: Make building osrm-routed optional #6144
      • FIXED: Run all unit tests in CI #5248
      • FIXED: Fix installation of Mason CMake and 32 bit CI build #6170
      • FIXED: Fixed Node docs generation check in CI. #6058
      • CHANGED: Docker build, enabled arm64 build layer #6172
      • CHANGED: Docker build, enabled apt-get update/install caching in separate layer for build phase #6175
      • FIXED: Bump CI complete meta job to ubuntu-20.04 #6323
      • CHANGED: Node packages are now scoped by @Project-OSRM #6386
    • Routing:
      • CHANGED: Lazily generate optional route path data #6045
      • FIXED: Completed support for no_entry and no_exit turn restrictions. #5988
      • ADDED: Add support for non-round-trips with a single fixed endpoint. #6050
      • FIXED: Improvements to maneuver override processing #6125
      • ADDED: Support snapping to multiple ways at an input location. #5953
      • FIXED: Fix snapping target locations to ways used in turn restrictions. #6339
      • ADDED: Support OSM traffic signal directions. #6153
      • FIXED: Ensure u-turn exists in intersection view. #6376
      • FIXED: Gracefully handle no-turn intersections in guidance processing. #6382
    • Profile:
      • CHANGED: Bicycle surface speeds #6212
    • Tools:
      • CHANGED: Do not generate intermediate .osrm file in osrm-extract. #6354

5.26.0

21 Sep 21:51
9aa7c6d

Choose a tag to compare

  • Changes from 5.25.0
    • API:
      • FIXED: Allow for special characters in the profile/method as part of the HTTP URL. #6090
      • FIXED: Set osrm-routed to immediately close bad connections #6112
    • Build:
      • CHANGED: Replace Travis with Github Actions for CI builds #6071
      • FIXED: Fixed Boost link flags in pkg-config file. #6083
      • FIXED: Fixed test cache to consider MLD executable changes. #6129
    • Routing:
      • FIXED: Fix generation of inefficient MLD partitions #6084
      • FIXED: Fix MLD level mask generation to support 64-bit masks. #6123
      • FIXED: Fix metric offset overflow for large MLD partitions. This breaks the data format #6124

v5.25.0

17 May 22:11
051e931

Choose a tag to compare

  • Changes from 5.24.0
    • Build:
      • CHANGED: Node binaries now use Github Releases for hosting #6030
    • Misc:
      • FIXED: Upgrade to @mapbox/node-pre-gyp fix various bugs with Node 12/14 #5991
      • FIXED: valid type in documentation examples #5990
      • FIXED: Remove redundant loading of .osrm.cell_metrics #6019
      • CHANGED: Increase PackedOSMIDs size to 34 bits. This breaks the data format #6020
    • Profile:
      • FIXED: Add kerb barrier exception to default car profile. #5999

v5.25.0-rc.2

17 May 21:27
3a029d4

Choose a tag to compare

v5.25.0-rc.2 Pre-release
Pre-release
Try pushing tag again.

v5.24.0

28 Jan 18:29
677598a

Choose a tag to compare

  • Changes from 5.23.0
    • Features
      • ADDED: Added support for multiple via-way restrictions. #5907
      • ADDED: Add node bindings support for Node 12, 14, and publish binaries #5918
      • REMOVED: we no longer publish Node 8 binary modules (they are still buildable from source) #5918
    • Routing:
      • FIXED: Avoid copying ManyToMany table results #5923
      • FIXED: Reduce copying in API parameter constructors #5925
    • Misc:
      • CHANGED: Cleanup NodeJS dependencies #5945
      • CHANGED: Unify .osrm.turn_penalites_index dump processing same with .osrm.turn_weight_penalties and .osrm.turn_duration_penalties #5868
      • FIXED: Properly validate source/destination validation in NodeJS table service #5595
      • FIXED: turn.roads_on_the_left not containing incoming roads and turn.roads_on_the_right not containing outgoing roads on two-way roads #5128
    • Profile:
      • ADDED: Profile debug script which fetches a way from OSM then outputs the result of the profile. #5908
    • Infrastructure
      • CHANGED: Bundled protozero updated to v1.7.0. #5858
    • Windows:
      • FIXED: Fix bit-shift overflow in MLD partition step. #5878
      • FIXED: Fix vector bool permutation in graph contraction step #5882
    • API:
      • FIXED: Undo libosrm API break by adding old interface as method overload #5861
      • FIXED: Fixed validation of sources/destinations when accessed via node bindings #5595