← Back to home
Comparison · DevOps

GraphHopper vs Sonic

A side-by-side editorial comparison of GraphHopper and Sonic — release velocity, themes, recent moves, and the top alternatives to consider.

GraphHopper vs Sonic: at a glance

FeatureGraphHopperSonic
SectorDevOpsDevOps
Velocity score0.06.3
Sparks · 30d01
Top themesrouting, openstreetmap, custom-models, navigationsearch-index, rust, bm25-ranking, relevance-quality
Last editorial update9d ago2d ago
WebsiteVisit →Visit →

What is GraphHopper?

GraphHopper finished moving vehicle profiles into custom models, then went back to OSM tags.

GraphHopper ships a major roughly every six months, with 11.0 in October 2025 the most recent. The architectural work happened in 9.0, which moved vehicle encoded values into the custom model, removed the built-in vehicle parsers' name property and the wheelchair parsers, allowed external encoded values in custom models, and blocked built-in custom model filenames. 10.0 then spent itself on storage layout — byte-based edge storage, a Map-based KVStorage API, wider georef fields — and 11.0 is almost entirely OSM tag interpretation: maxspeed=none handling, separate foot and bike road access, cycleway oneway combinations, toll parsing moved into a country-aware parser.

Read the full GraphHopper trajectory →

What is Sonic?

Sonic added real relevance ranking — and a benchmark to measure it.

Sonic is a lightweight Rust search index that has traded on speed and small footprint rather than ranking quality. The 1.8.0 cycle changes that: BM25 lite (idf-only) scoring and a minimum-term-idf floor replace flat term matching, and a BEIR benchmark now sits in the repo. The same cycle added Unicode normalization and custom stopwords, closing gaps that made non-English corpora awkward.

Read the full Sonic trajectory →

GraphHopper vs Sonic: editorial side-by-side

G0.0

GraphHopper finished moving vehicle profiles into custom models, then went back to OSM tags.

◆ Current state

GraphHopper ships a major roughly every six months, with 11.0 in October 2025 the most recent. The architectural work happened in 9.0, which moved vehicle encoded values into the custom model, removed the built-in vehicle parsers' name property and the wheelchair parsers, allowed external encoded values in custom models, and blocked built-in custom model filenames. 10.0 then spent itself on storage layout — byte-based edge storage, a Map-based KVStorage API, wider georef fields — and 11.0 is almost entirely OSM tag interpretation: maxspeed=none handling, separate foot and bike road access, cycleway oneway combinations, toll parsing moved into a country-aware parser.

◆ Where it's heading

The configuration model is settled and the effort has moved to routing quality. Nearly every change in 11.0 is about reading OSM tags more faithfully for a specific mode — bicycle handling on living streets, foot instructions at junctions, MTB speeds on compacted surfaces, HGV tolls by country — which is the long tail of work that separates a routing engine that runs from one people trust. Turn restrictions are the recurring source of real bugs, appearing across 9.0, 10.0, 10.1 and 11.0 with via-way handling repeatedly needing correction. The new POST /navigate endpoint accepting a GraphHopper request is the one API-surface addition in this window.

◆ Prediction

Expect continued profile-level tuning driven by OSM tagging edge cases rather than architectural change, since three consecutive majors have narrowed in that direction. Turn restriction handling with multiple or overlapping via-ways is the most likely source of the next bugfix release, given its record across every version here.

S
Sonic
DEVOPS
6.3

Sonic added real relevance ranking — and a benchmark to measure it.

◆ Current state

Sonic is a lightweight Rust search index that has traded on speed and small footprint rather than ranking quality. The 1.8.0 cycle changes that: BM25 lite (idf-only) scoring and a minimum-term-idf floor replace flat term matching, and a BEIR benchmark now sits in the repo. The same cycle added Unicode normalization and custom stopwords, closing gaps that made non-English corpora awkward.

◆ Where it's heading

The project now ships as three lockstep tags — sonic-server, sonic-core, sonic-client — with the ranking work landing in core first and the server bundling it hours later. Adding a retrieval benchmark alongside the scoring change is the tell: quality is becoming a tracked metric, not an assumption. The immediate cost showed up the same day, when renamed RocksDB config keys broke upgrades and forced a 1.8.1 correction.

◆ Prediction

The idf-only qualifier on BM25 points to the term-frequency and length-normalization components landing next, with BEIR runs used to justify the tuning. Expect the experimental TRIGGER flush to either graduate or disappear once the benchmark harness gets exercised.

Alternatives to GraphHopper and Sonic

Other DevOps products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either GraphHopper or Sonic.

See all GraphHopper alternatives → · See all Sonic alternatives →

Recent activity from GraphHopper and Sonic

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 2d agoSonicRestores config compatibility broken hours earlier by 1.8.0
  2. 2d agoSonicCore re-tag carrying the config fix through to the server
  3. 2d agoSonicBM25 relevance scoring lands; config rename breaks upgrades
  4. 3d agoSonicClient gains a raw API escape hatch
  5. 3d agoSonicCore ships the BM25 and Unicode work ahead of the server
  6. 1mo agoSonicOpt-in tokenizer pattern matching plus a full dependency pin
  7. 10mo agoGraphHopper11.0 refines mode-specific OSM tag handling and adds POST /navigate
  8. 1y agoGraphHopper10.2 fixes an import failure on recent OSM turn restriction data
  9. 1y agoGraphHopper10.1 cherry-picks a via-way turn restriction fix
  10. 1y agoGraphHopper10.0 reworks edge storage layout and turn cost computation
  11. 2y agoGraphHopper9.1 is a bugfix release with no documented changes
  12. 2y agoGraphHopperVehicle profiles collapse into custom models in GraphHopper 9

Frequently asked questions

What is the difference between GraphHopper and Sonic?

They serve adjacent needs but don't currently overlap on shipped themes. Sonic is currently shipping more aggressively (velocity 6.3 vs 0.0), with 1 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is GraphHopper better than Sonic?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. Sonic is currently shipping more aggressively (velocity 6.3 vs 0.0), with 1 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other DevOps products to evaluate alongside.

What are the best alternatives to GraphHopper?

Top GraphHopper alternatives in DevOps are ranked by recent ship velocity. Browse the "GraphHopper alternatives" section above for the current picks, or visit /alternatives/graphhopper for the full list with editorial commentary on each.

What are the best alternatives to Sonic?

Top Sonic alternatives in DevOps are ranked by recent ship velocity. Browse the "Sonic alternatives" section above for the current picks, or visit /alternatives/sonic-search for the full list with editorial commentary on each.