geocache alternatives and similar packages
Based on the "Database" category.
Alternatively, view geocache alternatives based on common mentions on social networks and blogs.
-
prometheus
The Prometheus monitoring system and time series database. -
Milvus
A cloud-native vector database, storage for next generation AI applications -
tidb
TiDB is an open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics. Try AI-powered Chat2Query free at : https://tidbcloud.com/free-trial -
influxdb
Scalable datastore for metrics, events, and real-time analytics -
cockroach
CockroachDB - the open source, cloud-native distributed SQL database. -
vitess
Vitess is a database clustering system for horizontal scaling of MySQL. -
groupcache
groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. -
TinyGo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM. -
VictoriaMetrics
VictoriaMetrics: fast, cost-effective monitoring solution and time series database -
immudb
immudb - immutable database based on zero trust, SQL and Key-Value, tamperproof, data change history -
go-cache
An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. -
go-mysql-elasticsearch
Sync MySQL data into elasticsearch -
buntdb
BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support -
pREST
PostgreSQL ➕ REST, low-code, simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new -
rosedb
🚀 A high performance NoSQL database based on bitcask, supports string, list, hash, set, and sorted set. -
xo
Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server -
tiedot
A rudimentary implementation of a basic document (NoSQL) database in Go -
dbmate
:rocket: A lightweight, framework-agnostic database migration tool. -
nutsdb
A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. -
cache2go
Concurrency-safe Go caching library with expiration capabilities and access counters -
GCache
An in-memory cache library for golang. It supports multiple eviction policies: LRU, LFU, ARC -
fastcache
Fast thread-safe inmemory cache for big number of entries in Go. Minimizes GC overhead -
gocraft/dbr (database records)
Additions to Go's database/sql for super fast performance and convenience. -
CovenantSQL
A decentralized, trusted, high performance, SQL database with blockchain features
TestGPT | Generating meaningful tests for busy devs
Do you think we are missing an alternative of geocache or a related project?
README
geocache

geocache is an in-memory cache that is suitable for geolocation based applications. It uses geolocation as a key for storing items. You can specify range on initialization and thats it! You can store any object, it uses interface.
Installation
go get github.com/melihmucuk/geocache
Usage
import (
"fmt"
"time"
"github.com/melihmucuk/geocache"
)
func main() {
c, err := geocache.NewCache(5*time.Minute, 30*time.Second, geocache.WithIn1KM)
geoPoint := geocache.GeoPoint{Latitude: 40.9887, Longitude: 28.7817}
if err != nil {
fmt.Println("Error: ", err.Error())
} else {
c.Set(geoPoint, "helloooo", 2*time.Minute)
v1, ok1 := c.Get(geocache.GeoPoint{Latitude: 41.2, Longitude: 29.3})
v2, ok2 := c.Get(geocache.GeoPoint{Latitude: 41.2142, Longitude: 29.4234})
v3, ok3 := c.Get(geocache.GeoPoint{Latitude: 40.9858, Longitude: 28.7852})
v4, ok4 := c.Get(geocache.GeoPoint{Latitude: 40.9827, Longitude: 28.7883})
fmt.Println(v1, ok1)
fmt.Println(v2, ok2)
fmt.Println(v3, ok3)
fmt.Println(v4, ok4)
}
}
outputs:
<nil>, false
<nil>, false
helloooo, true
helloooo, true
Information
You can specify 8 different range. More info can be found here.
WithIn11KM
The first decimal place is worth up to 11.1 km eg: 41.3, 29.6
WithIn1KM
The second decimal place is worth up to 1.1 km eg: 41.36, 29.63
WithIn110M
The third decimal place is worth up to 110 m eg: 41.367, 29.631
WithIn11M
The fourth decimal place is worth up to 11 m eg: 41.3674, 29.6316
WithIn1M
The fifth decimal place is worth up to 1.1 m eg: 41.36742, 29.63168
WithIn11CM
The sixth decimal place is worth up to 0.11 m eg: 41.367421, 29.631689
WithIn11MM
The seventh decimal place is worth up to 11 mm eg: 41.3674211, 29.6316893
WithIn1MM
The eighth decimal place is worth up to 1.1 mm eg: 41.36742115, 29.63168932