GraphHopper
Overview
GraphHopper is a high-performance open-source routing engine for OpenStreetMap data. Written in Java, it can be used as a Java library, a standalone web server, or a Docker container. GraphHopper powers fast route planning and optimization for car, bike, pedestrian, and other profiles, with support for elevation data, traffic information, and custom routing rules. The project also offers the GraphHopper Directions API — a hosted commercial service — but the core routing engine remains fully open source and self-hostable, making it a popular choice for logistics companies, outdoor applications, and developers who need flexible routing capabilities.
Key Features
- Multi-Profile Routing: Optimized profiles for car, bike, mountain bike, racing bike, foot, hike, wheelchair, scooter, truck, and cargo bike — each with appropriate speed and access rules.
- Elevation-Aware Routing: Takes elevation changes into account for hiking and cycling routes, providing realistic time and energy estimates.
- Route Optimization: Solve vehicle routing problems (VRP) with multiple stops, time windows, capacity constraints, and fleet management.
- Map-Matching: Snap noisy GPS traces to the road network for accurate speed analysis, traffic flow estimation, and route visualization.
- Custom Profiles: Create your own routing profiles with custom weights, access restrictions, and vehicle dimensions using a simple configuration language.
- Global Coverage: Works with any OpenStreetMap extract — full planet down to a single city — with efficient memory usage and fast query times.
- Docker & API Support: Easy deployment via Docker with a comprehensive REST API for integration into any application.
Why Use It
GraphHopper delivers enterprise-grade routing performance in a self-hosted open-source package. Unlike cloud-only routing APIs that charge per request and impose usage limits, GraphHopper can be deployed on your own infrastructure with no ongoing per-query costs. Its Java codebase is extensively optimized — routing queries typically complete in milliseconds even on planetary-scale data. The active community (7,000+ commits, 6,600+ GitHub stars) and commercial backing ensure continuous development and reliable maintenance.
Use Cases
- Last-Mile Delivery Optimization: Plan efficient delivery routes with multiple stops, time windows, and vehicle capacity constraints to reduce fuel costs and delivery times.
- Outdoor & Fitness Apps: Power hiking, mountain biking, and running route planning with elevation-aware profiles for realistic difficulty assessment.
- Logistics & Fleet Management: Integrate route optimization into field service dispatching, freight routing, and transportation management systems.
- Navigation Applications: Embed open-source routing into custom navigation apps without reliance on proprietary APIs or per-request pricing.
Platforms
Linux, macOS, Windows (Java), Docker, Web API. Supports Java 17+.
Licence
Apache License 2.0
Website
graphhopper.com
Views: 2