All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added support for key expirations (#15).
- Implemented serde for
SpatialIndex
(#17). - renamed
cache.rs
toindex.rs
. - Updated
kiddo
tov4.2.1
.
- Replaced the
haversine
crate withhaversine-rs
after noticing it performed better in benchmarks.
- Moved configuration defaults into
GeoShard
(#2). - Remove manual truncation in unsorted search by pinning Kiddo to latest commit (#7) and handling edge case with
count
= 0.
- Added suport for batch insertion, query and removal (#1).
- Improved error handling for
GeoShardError
by implementingDisplay
andError
. - Corrected issue with
(lat, lng)
ordering inHaversineDistance
metric.
- Added additional tests for insertion, query and removal.
- Handled edge case when
count
eqauls 0. - Handled bug in Kiddo where
count
is ignored whensort
is disabled (see Kiddo#168).
- Using
ahash
as the internal hasher, since it out performed previous benchmarks. - Swapped
std::collections
forhashbrown
implementations. - Replaced
position_map
implementation fromHashMap
toHashTable
improving key lookup speeds. search
andrange_query
supportcount
andsorted
arguments.
- Added support for OpenAPI schema generation by adding a
utoipa
crate feature, which conditionally deriveutoipa::ToSchema
trait.
Initial release
This release introduces the core features for geospatial proximity detection in the Geoprox project.
- Geohash Indexing: Utilizes
patricia_tree::map::StringPatriciaMap
to index geohashes. This approach optimizes in-memory search space and efficiently locates keys with the same geohash prefix, allowing for rapid geographic proximity searches. - Localized Search: Implements localized search functionality using
kiddo::KdTree
for precise nearest neighbor calculations.