-
Notifications
You must be signed in to change notification settings - Fork 0
Releases: cairn-geocoder/cairn
Releases · cairn-geocoder/cairn
v0.1.0
Assets 6
v0.0.1-alpha — first public alpha
v0.0.1-alpha — first public alpha
Pre-release
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.