Skip to content

Releases: cairn-geocoder/cairn

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 29 Apr 16:23
Cairn v0.1.0 — first public beta ("Germany")

v0.0.1-alpha — first public alpha

Pre-release

Choose a tag to compare

@marcosci marcosci released this 28 Apr 08:22

First public alpha of Cairn — offline, airgap-ready geocoder written in Rust.

What works

  • Forward search with autocomplete, fuzzy edit-distance, layer filter, and focus-point geo-bias rerank.
  • Structured search by address fields (house_number, road, postcode, city, region, country) with auto layer hint.
  • Reverse geocoding via R*-tree + point-in-polygon, finest-containing-polygon first; nearest-K centroid fallback when PIP misses.
  • Bundle layout: blake3-anchored tile blobs (rkyv) + tantivy text index + bincode admin polygons + bincode centroid layer.
  • Build sources wired: OpenStreetMap PBF (places, named highways, POIs), WhosOnFirst SQLite (admin SPR + multilingual names + polygons), OpenAddresses CSV.

Smoke-tested on Liechtenstein

  • 3553 OSM places (792 nodes + 2761 ways) + 94 WoF admins → 3647 total
  • 27 admin polygons in spatial layer
  • 6 tiles per-level, blake3 verified
  • All endpoints return real data; reverse fallback returns nearest centroids when probe is outside any polygon

Quality gates

  • 26 unit tests (3 place + 4 tile + 4 osm + 5 text + 4 wof + 4 spatial + 2 oa)
  • `cargo fmt --all -- --check` clean
  • `cargo clippy --workspace --all-targets -- -D warnings` clean
  • Test runs are isolation-safe under `--workspace` parallelism

Build

```bash
cargo build --release -p cairn-build -p cairn-serve
./target/release/cairn-build build --osm path.pbf --wof wof.db --out bundle
./target/release/cairn-serve --bundle bundle --bind 127.0.0.1:8080
```

Not yet shipped (see ROADMAP.md)

  • libpostal FFI for free-text address parsing
  • OSM `boundary=administrative` relation polygons
  • Address interpolation along OSM ways
  • Per-tile spatial partitioning for planet-scale
  • Region extracts (`cairn-build extract --bbox`)
  • mmap-aligned rkyv-archived spatial blobs

License

Dual-licensed: MIT OR Apache-2.0.