Open-source database engines and extensions designed for storing, indexing, and querying complex geographic coordinate data.
BuntDB is an embedded key-value store for Go applications, providing in-memory storage with optional disk persistence. It structures data using a B-tree for ordered key-value access and an R-tree for spatial indexing, allowing both range scans and geometric intersection queries. Support for indexing on nested JSON document fields enables efficient lookups by values within JSON objects, and per-key time-to-live (TTL) expiration automatically removes stale entries. The store uses copy-on-write transaction isolation, ensuring each transaction sees a consistent snapshot and changes are applied atomically as a single unit that commits or rolls back entirely. Durability is achieved through an append-only write-ahead log that records all mutations to a file, which is replayed on restart and periodically compacted. Custom B-tree indexes can be created on keys, values, JSON fields, or composite fields with support for multi-column ordering, descending order, and locale-specific collation, while the R-tree spatial index stores points and rectangles for intersection queries. The system groups multiple read and write operations into atomic transactions and offers automatic data expiration via per-key TTL timers with a background sweeper. Together, these capabilities make it a compact embedded database suitable for range queries, geospatial lookups, and JSON field-indexed access within single Go programs.
BuntDB is an embedded key-value store that provides R-tree spatial indexing for points and rectangles, making it a suitable tool for lightweight geospatial queries within Go applications.
Tile38 is an in-memory geospatial database that uses the Redis protocol for communication and query execution. It serves as a distributed spatial store for points and polygons, featuring high availability through leader-follower replication and disk-based persistence. The system includes a real-time geofencing engine that monitors virtual geographic boundaries and triggers webhooks when objects enter or exit specified areas. It further distinguishes itself with an embedded Lua scripting engine for server-side data transformations and a built-in vector tile server for efficient map visualization. The platform supports diverse geospatial formats and provides spatial querying capabilities, including proximity searches, containment checks, and k-nearest neighbors. Data retrieval can be further refined using attribute and expression-based filtering, while object lifetimes are managed via time-to-live values. The server can be deployed using containerized images and supports secure client access through TLS encryption and role-based access control.
Tile38 is a specialized in-memory geospatial database that provides robust spatial indexing, proximity querying, and real-time geofencing, though it focuses primarily on vector data rather than full-scale raster analysis.
Dragonfly is a high-performance, multi-model in-memory data store designed to serve as a drop-in replacement for existing database infrastructures. By utilizing a multi-threaded, shared-nothing architecture and a fiber-based concurrency model, it maximizes CPU utilization and minimizes latency for read and write operations. The system supports a wide range of data structures, including strings, hashes, lists, sets, sorted sets, and JSON documents, while maintaining full compatibility with standard industry wire protocols and client libraries. What distinguishes Dragonfly is its focus on efficiency and scalability through advanced memory management and request processing. It employs a lock-free, cache-friendly hash table structure and zero-copy serialization to reduce overhead during high-throughput operations. For durability, the system utilizes asynchronous, snapshot-based persistence that captures the state of the dataset without blocking active requests. Furthermore, it provides built-in support for horizontal scaling and cluster management, allowing for the distribution of large datasets across multiple nodes to ensure high availability. Beyond core storage, the platform includes a comprehensive suite of operational and analytical capabilities. It features integrated support for geospatial data management, real-time message brokering via publish-subscribe patterns, and full-text search. To handle massive datasets efficiently, the engine incorporates probabilistic data structures for cardinality estimation, frequency tracking, and membership testing. These features are complemented by robust administrative tools, including access control, request rate limiting, and detailed server monitoring.
Dragonfly is a high-performance, multi-model in-memory database that includes built-in support for geospatial data structures and operations, making it a capable tool for spatial data tasks despite its primary focus on general-purpose key-value storage.