finds.dev← search

// the find

graphhopper/graphhopper

★ 6,513 · Java · Apache-2.0 · updated Jun 2026

Open source routing engine for OpenStreetMap. Use it as Java library or standalone web server.

GraphHopper is a mature Java routing engine that ingests OpenStreetMap data and exposes A-to-B routing, isochrones, map matching, and public transit planning via either a Java library or HTTP API. It's built for teams that need to run routing infrastructure on their own hardware rather than pay per-call to a hosted service. Version 11 is the current stable release, actively maintained with yearly major releases going back to 2020.

Contraction Hierarchies implementation is production-grade — CH preparation trades upfront compute for query times that beat naive Dijkstra by orders of magnitude, and you can switch between speed/hybrid/flexible modes at request time without restarting. Custom models let you reshape routing costs via a JSON DSL without writing Java, which covers 80% of real-world customization needs. The encoded values system for storing road attributes (surface, max speed, country, slope, curvature) is compact and well-designed — everything fits in a memory-mapped graph structure rather than blowing up RAM. Map matching via HMM snap-to-road is included as a first-class submodule, not bolted on.

Initial graph import from a full planet PBF is slow and memory-hungry — expect multiple hours and 10+ GB RAM for worldwide coverage, so this is not something you fire up in a container on a schedule. The GTFS/public transit module works but is documented as experimental territory and lags the core in polish. Offline mobile support was officially dropped in v2; the Android path still technically works but you're on your own. The configuration surface is large (profiles, CH profiles, LM profiles, custom weightings) and the YAML config file has enough knobs that a misconfiguration silently produces wrong routes rather than failing fast.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →