A small footprint reverse-geocoder for when you don't need precision.
Salta is a simple reverse geocoder for when you don't need precision, i.e. the most precise location you need is at the city or suburb level.
The aim is to have:
- low memory usage
- fast start-up time
- no database
- fast updates
Salta relies on the Who's On First database.
In order to optimize memory usage, on the first launch Salta simplifies polygons and stores a cached version of every processed geojson. On subsequent launches cached files are used when the source hasn't changed.
Country | Load time (with cache) | Initial load time (no cache) | Memory usage | Total disk usage (repo/cache) |
---|---|---|---|---|
New Zealand | 1s | 4mn | 23MB | 791MB (738MB/53MB) |
France | 3s | 3mn | 152MB | 4GB (2.9G/914MB) |
United States | 6s | 15mn | 259MB | 8.6GB (6.8GB/1.8GB) |
Loading all place types. Memory usage after GC. SSD drive, AMD Ryzen 3700X.
When using the cache only mode the initial load time can be significantly faster, when loading the whole world is takes:
- A few seconds to load countries and localities
- Around five minutes to load all place types
In terms of memory usage for loading the whole world, depending on the place types loaded:
Place type | Memory usage |
---|---|
Countries | 73MB |
Countries + Localities | 512MB |
Countries + Regions + Localities | 818MB |
All | 1.3GB |
The mean response time for HTTP requests is around 200-300μs.
Sample config file:
# In cache only mode Salta only loads the available cache files. This makes
# start-up significantly faster.
cache_only: true # default: false
countries: # default: all countries
- nz
- fr
cache:
folder: /path/to/salta/cache/folder # default: cache
repos:
folder: /path/to/salta/repos/folder # default: repos
enabled_place_types: # default: all
- locality
- neighbourhood
- borough
- microhood
- county
- macrocounty
- localadmin
- region
- macroregion
- country
- campus
- marketarea
Supported formats: JSON, YAML.
docker run -v $PWD/config.yaml:/config.yaml -t ghcr.io/pixwire/salta:latest
Who's on first data requires linking back to their license. See the Who's on first license for more information.
Salta was created for use in Pixwire.