To make routing fast enough for long paths (continental size) and avoid heuristical approaches GraphHopper uses contraction hierarchies by default.
In the Java Magazine from Oracle, the author, Peter Karich, describes the techniques necessary to make the system memory efficient and fast.
[6] The Apache License allows everyone to customize and integrate GraphHopper in free or commercial products, and together with the query speed and OpenStreetMap data this makes GraphHopper a possible alternative to existing routing services and GPS navigation software e.g. using the Maplibre Navigation SDK.
[8] Other use cases are: Notable users of GraphHopper are Rome2rio, Deutsche Bahn, Komoot, Gnome[13] and Flixbus.
Since February 2015, GraphHopper has been one of the APIs powering routing on the official OpenStreetMap website and version 0.4 was released shortly afterwards in March 2015.