genom v2.0.0
rust geocoding library

turn coordinates into context

Fast offline reverse geocoding with enriched location data. Sub-microsecond lookups for timezone, currency, region, postal code, and 14 other fields.

input
output
New York, United States
America/New_York • USD • NY
get started
<1µs lookup
18 fields
0 config

why genom

built for developers who need speed and precision

blazing fast

Two-level spatial grid + zero-copy parse of an embedded ~37 MB binary blob. Varint+zigzag deltas and string interning keep the footprint small.

🎯

rich data

18 fields per location including timezone, currency, postal code, region, continent, EU membership, and DST status. Everything you need in one call.

🔧

zero setup

Database builds automatically on first install. No downloads, no configuration files, no external dependencies. Just add and use.

🧵

thread-safe

Global singleton with lazy initialization. Lock-free reads mean zero contention in multi-threaded applications. Safe by default.

installation

Add genom to your Cargo.toml and start converting coordinates to location data immediately.

1
Add dependency
2
Import library
3
Start looking up
Cargo.toml
[dependencies]
genom = "2.0"
main.rs
use genom;

let place = genom::lookup(40.7128, -74.0060)?;
println!("{}", place.timezone);

complete location data

every field you need, returned in microseconds

location

city region region_code district postal_code

geography

country_code country_name continent_code continent_name is_eu

time & currency

timezone timezone_abbr utc_offset dst_active currency

coordinates

latitude longitude