GitHub

open-geocode

1600 Pennsylvania Ave NW, Washington geocodes to 38.89747, -77.03655. 名古屋城, 名古屋市 geocodes to 35.18532, 136.89918. Красная площадь, Москва geocodes to 55.75276, 37.62358. इंडिया गेट, नई दिल्ली geocodes to 28.61293, 77.22949. 5 Av. Anatole France, Paris geocodes to 48.85882, 2.29460. 故宫博物院, 北京 geocodes to 39.91743, 116.39078. قلعة صلاح الدين, القاهرة geocodes to 30.02983, 31.26147. 불국사, 경주 geocodes to 35.78909, 129.33182. הכותל המערבי, ירושלים geocodes to 31.77640, 35.23308. Cristo Redentor, Rio de Janeiro geocodes to -22.95192, -43.21046.

Fast, lightweight, self-hosted geocoding engine in pure Rust.

Get started

630 million addresses in a single file.

Forward, reverse and batch geocoding built from OpenStreetMap and OpenAddresses, served from your own hardware.

  • Self-hosted

    og runs on your own hardware. No address leaves your network, and there is no per‑lookup fee.

  • Fast

    A forward query takes 1.0 ms at the median on Ontario, against 11.5 ms for Pelias and 40.0 ms for Nominatim.

  • Lightweight

    One binary and one file, with no database or search cluster to run. Ontario's Pack is 324 MB.

Benchmarks

Faster than Pelias and Nominatim, on the same hardware.

The same Ontario extract, the same 4 CPU / 10 GB cap and the same queries. og answers a forward query in 1.0 ms at the median, and was still holding at 1,000 requests a second when the load test stopped.

On MESSY STREETS, a benchmark of real addresses copied from the web, it leads every open-source geocoder at every resolution.

Read the full benchmarks →

Forward geocoding throughput

Requests per second with p99 under 100 ms (higher is better)

GeocoderBarReq/sReverse
open-geocode1,000+1,000+
Pelias100500
Nominatim25100

Ontario extract, 2.03 million addresses · 4 CPU / 10 GB each · loopback HTTP · og's load test stopped at 1,000 req/s, not its ceilingmethod

From an extract to answers in one binary.

$ cargo install open-geocode --features tui
og — ~/packs — 80×2401 / 05

Compare

No API bills, no database, no cluster to run.

Commercial APIs are quick to start with, but bill every lookup and see every address.

Open-source geocoders keep the data in-house, but need a database or search cluster. og keeps it in-house and runs from one file.

FeatureogCommercialOpen source
Self-hostedAddresses stay on your networkYesNoYes
No usage feesNo quotas or rate limitsYesNoYes
InfrastructureWhat you run and maintainYesOne binary, one fileYesNone, it's hostedNoDatabase + search cluster
Batch geocodingCSV in, coordinates outYesFree, unlimitedYesFree tier, then per addressNoNo batch endpoint
Open sourceMIT licensed, open dataYesNoYes

Open source: Nominatim, Pelias and Photon. Commercial: Google, HERE, Mapbox and others.