BuntDB
Database for Go with custom indexing and geospatial support
...It is built for scenarios where you want a lightweight, fast store (reads and writes in memory) but also durability (via append-only file format) and transactional semantics (ACID with single-writer, multiple-reader locking). Among its distinguishing features are support for custom indexing (even within JSON values), spatial (geospatial) indexes with support up to 20 dimensions, flexible iteration over keys (ascending, descending, ranges), TTL/expiry eviction, and embeddability. Because it keeps its data in memory (with persistent backing), it's well suited for caching, session stores, small-scale databases inside Go applications, or applications that prefer simplicity and speed over massive scale. ...