Overview
Discover what makes OpenRouteService powerful
OpenRouteService (ORS) is a high‑performance, Java‑based routing engine that extends the capabilities of GraphHopper 4.0 with a rich set of global spatial services. Built on top of a forked GraphHopper core, ORS ingests raw OpenStreetMap (OSM) data to construct a multi‑modal routing graph that supports driving, cycling, walking, and public transport. The service exposes a comprehensive RESTful API for directions, isochrones, distance/time matrices, snapping, and graph export, enabling developers to integrate advanced GIS functionality into custom applications without maintaining a full routing stack.
Multi‑modal Routing
Isochrones & Reachability
Distance/Time Matrices
Snapping & Export
Overview
OpenRouteService (ORS) is a high‑performance, Java‑based routing engine that extends the capabilities of GraphHopper 4.0 with a rich set of global spatial services. Built on top of a forked GraphHopper core, ORS ingests raw OpenStreetMap (OSM) data to construct a multi‑modal routing graph that supports driving, cycling, walking, and public transport. The service exposes a comprehensive RESTful API for directions, isochrones, distance/time matrices, snapping, and graph export, enabling developers to integrate advanced GIS functionality into custom applications without maintaining a full routing stack.
Key Features
- Multi‑modal Routing – Compute optimal paths for car, bike, foot, and public transport with configurable speed profiles.
- Isochrones & Reachability – Generate time‑ or distance‑based polygons from arbitrary points, useful for service area analysis and disaster response.
- Distance/Time Matrices – Retrieve one‑to‑many, many‑to‑one, or many‑to‑many matrices for large scale logistics planning.
- Snapping & Export – Snap arbitrary coordinates to the road network and export the underlying graph for offline analysis or custom visualisation.
- Health & Status Endpoints – Expose internal metrics and health checks when self‑hosted, facilitating observability in production environments.
Technical Stack
- Language & Runtime – Java 17+, Spring Boot for the web layer, and a heavily modified GraphHopper core.
- Data Layer – PostgreSQL/PostGIS for auxiliary data (e.g., POIs, traffic), while the routing graph is stored in GraphHopper’s own binary format.
- Containerization – Official Docker images (nightly and LTS) support both JAR‑based and container‑native deployments.
- Configuration – YAML/Properties files allow fine‑grained tuning of caching, routing profiles, and OSM import options.
- Observability – Prometheus metrics exposed via
/statusand structured logging with Logback.
Deployment & Infrastructure
ORS is designed for self‑hosting on commodity hardware or cloud VMs. The Docker images come with a lightweight “low RAM” variant that reduces heap usage by disabling unnecessary caches, making it suitable for edge devices or small clusters. For larger deployments, a multi‑node Kubernetes setup can be orchestrated using Helm charts (not included in the core repo but available in community extensions). Horizontal scaling is achieved by running multiple instances behind a load balancer; the routing graph can be shared via a distributed file system or mounted from a central storage bucket.
Integration & Extensibility
Developers can extend ORS in several ways:
- Custom Profiles – Add new vehicle or pedestrian profiles by editing the GraphHopper profile XML and recompiling.
- Plugin Architecture – The underlying GraphHopper core supports custom
WeightingandEdgeFilterplugins, enabling domain‑specific routing heuristics. - Webhooks & SDKs – While ORS itself does not provide outbound webhooks, the API can be wrapped by a lightweight service that triggers downstream workflows.
- SDKs – Official client libraries (Java, Python, JavaScript) abstract HTTP calls and provide typed request/response models.
Developer Experience
ORS ships with extensive, interactive API documentation generated by Swagger/OpenAPI. The docs include example requests for every endpoint and a live playground, which accelerates prototyping. Configuration files are self‑documented, and the project maintains a high SonarQube quality gate score. The community is active on GitHub issues, and contributors can submit pull requests to the GraphHopper fork for performance improvements or new features.
Use Cases
- Urban Planning – Generate isochrone maps to assess accessibility of public transport hubs.
- Disaster Management – Rapidly compute reachable zones for emergency responders using up‑to‑date OSM data.
- Logistics & Fleet Management – Build custom routing dashboards that integrate matrix calculations for route optimization.
- Smart Mobility Platforms – Offer a unified API to mobile apps that need multi‑modal navigation without licensing constraints.
Advantages
- Open Source & Self‑Hosted – Full control over data, compliance with privacy regulations, and no vendor lock‑in.
- Performance – The GraphHopper engine delivers sub‑second response times for typical queries on commodity hardware.
- Flexibility – Deep customization of routing logic, ability to export the graph for offline analytics, and a plugin system that lets developers inject domain knowledge.
- Community & Documentation – Active maintainers, comprehensive docs, and a large ecosystem of client libraries reduce the learning curve.
OpenRouteService empowers developers to build sophisticated, privacy‑respecting spatial applications that can scale from a single VM to multi‑node clusters while retaining full control over the underlying routing logic.
Open SourceReady to get started?
Join the community and start self-hosting OpenRouteService today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
MODX Revolution
Fast, secure, flexible open‑source CMS for any web project
SolidInvoice
Effortless invoicing for freelancers and small businesses
Tinode
Decentralized, mobile‑first instant messaging platform
Antragsgrün
Collaborative motion and amendment management for NGOs and parties
Tracks
Web-based GTD™ task manager built with Ruby on Rails
HyperSwitch
Composable open‑source payments infrastructure
