spatio 0.1.8

A high-performance, embedded spatio-temporal database for modern applications
Documentation

Embedded spatio-temporal database with 2D/3D indexing, persistence, and lazy TTL support.

Features

  • Spatial indexing: 2D/3D points, polygons, bounding boxes with R*-tree spatial indexing
  • Persistence: Append-only file (AOF) with configurable sync policies
  • Lazy TTL: Expired items are filtered on read, manual cleanup available
  • Atomic batches: Group multiple operations atomically
  • Temporal queries: Filter by creation time (with time-index feature)

TTL Behavior

TTL is passive/lazy:

  • Expired items return None on get() and are skipped in queries
  • Items remain in storage until overwritten or manually cleaned with cleanup_expired()
  • No automatic background cleanup or deletion on insert
use spatio::{Point, Spatio, SetOptions};
use std::time::Duration;

let mut db = Spatio::memory()?;
db.insert("key", b"value", None)?;

// TTL example (lazy expiration)
let opts = SetOptions::with_ttl(Duration::from_secs(60));
db.insert("temp", b"expires_soon", Some(opts))?;

// Spatial example
let point = Point::new(-74.0060, 40.7128);
db.insert_point("cities", &point, b"NYC", None)?;
let nearby = db.query_within_radius("cities", &point, 1000.0, 10)?;

// Manual cleanup of expired items
let removed = db.cleanup_expired()?;
# Ok::<(), spatio::SpatioError>(())