Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: cairn-geocoder/cairn

v0.1.0

29 Apr 16:23
@github-actions github-actions

Choose a tag to compare

Cairn v0.1.0 — first public beta ("Germany")
Assets 6
Loading

v0.0.1-alpha — first public alpha

28 Apr 08:22
@marcosci marcosci

Choose a tag to compare

Pre-release

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.

Loading

AltStyle によって変換されたページ (->オリジナル) /