Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression. Learn more →
Top 23 Go Key-Value Projects
-
Project mention: Why is the principle stating that "interfaces should belong to the package that uses values of the interface type, not the package that implements those values" sometimes violated? | reddit.com/r/golang | 2023-02-19
While exploring popular projects such as etcd and especially traefik, I noticed a violation of the principle that states "interfaces should belong to the package that uses values of the interface type, not the package that implements those values." For example, Here we can see that ManagerFactory import Registry interface that placed here and implementations of this interface in the same package, which violates the aforementioned principle. Even if the interface is simply a specification, it should still be defined on the consumer side. Is it considered bad practice to follow what traefik does in this case or I doesn't understand somthing? P.S. I'm newcomer, so sorry if it's silly question.
-
I' see that I'm also set to check out BadgerDB next. https://github.com/dgraph-io/badger
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
immudb
immudb - immutable database based on zero trust, SQL and Key-Value, tamperproof, data change history
-
buntdb
BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
Project mention: Is there a nice embedded json db, like PoloDB (Rust) for Golang | reddit.com/r/golang | 2022-11-05https://github.com/tidwall/buntdb -> i think this one you might want
-
rosedb
🚀 A high performance NoSQL database based on bitcask, supports string, list, hash, set, and sorted set.
Project mention: Redcon - Redis compatible server framework for Rust | reddit.com/r/rust | 2022-05-14 -
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.
Project mention: Beginner ~ Intermediate Go programmer, how can I get better in go and get out of the "beginner" phase? | reddit.com/r/golang | 2023-03-09The best example I can give you is https://github.com/nutsdb/nutsdb it’s great project that got me started, one thing one should know is Go is different “yep” so there’re some coding habits that may bite you in Go and the Go compiler won’t correct you, you wanna learn about optimizations, unsafe usage check out https://github.com/valyala/fasthttp (note this is deep the rabbit hole), wanna learn concurrency check out ants https://github.com/panjf2000/ants with a little aid from “Go by example” you’re good to go
-
Olric
Distributed in-memory object store. It can be used both as an embedded Go library and as a language-independent service.
Project mention: I’m Now a Full-Time Professional Open Source Maintainer | news.ycombinator.com | 2023-02-03It's Olric: https://github.com/buraksezer/olric. Publicly speaking about the companies may not be a good idea but you can dig into the issues, pull requests, and Discord channel if you are curious.
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
redix
a very simple pure key => value storage system that speaks Redis protocol with Postgres as storage engine and more
Project mention: Redcon - Redis compatible server framework for Rust | reddit.com/r/rust | 2022-05-14 -
pogreb - Embedded key-value store for read-heavy workloads.
-
IceFireDB
IceFireDB is a database built for web3 and web2. It strives to fill the gap between web2 and web3 with a friendly database experience, making web3 application data storage more convenient, and making it easier for web2 applications to achieve decentralization and data immutability.
Project mention: IceFireDB-Redis-proxy:Redis database proxy meets P2P, an interesting attempt. | reddit.com/r/golang | 2022-07-17 -
gokv
Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more)
-
flashdb
FlashDB is an embeddable, in-memory key/value database in Go (with Redis like commands and super easy to read) (by arriqaaq)
Project mention: Redcon - Redis compatible server framework for Rust | reddit.com/r/rust | 2022-05-14 -
Project mention: SDB :Pure golang development, distributed, rich data structure, persistent, easy-to-use NoSQL database | dev.to | 2022-05-12
SDB :Pure golang development, distributed, rich data structure, persistent, easy-to-use NoSQL database
-
Just know that dgraph (which you also mentioned) appears to be in its death throws. The original developer has left, forked it and is working on starting a new company around it. I'm rooting for him because it's a great database.
-
I recently implemented the Bitcask paper in Golang and shared my learnings [on this post](https://mrkaran.dev/posts/barreldb/).
[GitHub](https://github.com/mr-karan/barreldb/) repo if interested.
Bitcask is an excellent paper that is not overwhelming to understand and offers a great stepping stone in building your own data stores. The simple yet powerful design of an append only file is eloquent and performant.
I’d love to read about more such implementations, if anyone has any recommendations.
-
-
-
Project mention: IceFireDB-Proxy: Interesting redis database proxy, supports redis cluster, stand-alone mode. | reddit.com/r/golang | 2022-03-22
New framework for faster network, will be upgraded soon. redhub
-
regatta
Regatta is a distributed key-value store. It is Kubernetes friendly with emphasis on high read throughput and low operational cost.
Project mention: Regatta – distributed key-value store built for Kubernetes | news.ycombinator.com | 2023-03-13 -
vkv
vkv enables you to list, compare, import, document, backup & encrypt secrets from a HashiCorp Vault KV-v2 engine
Project mention: vkv: recursively list key-values entries from Vaults KV2 engine in various formats | reddit.com/r/devops | 2022-04-27 -
Project mention: Go implementation of Bitcask - A Log-Structured Hash Table for Fast Key / Value Data | reddit.com/r/golang | 2022-09-16
As a learning endeavor, I recently spent some time implementing a simple but powerful key/value store designed in the light of riak bitcask paper. It's still incomplete but works: https://github.com/aneshas/gocask
-
hedge
A distributed systems library for Kubernetes deployments built on top of spindle and Cloud Spanner.
-
For learning, I built components of the database engine like an SQL parser, a file-based B+ tree, a log-structured merge-tree. And I planned to merge them into the simple database engine. But I paused the project due to the changes in life obstacles.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Go Key-Value related posts
- Running 2 web apps in one application using Go Routines
- KVSToK - A CLI-base KEY VALUE storage
- Butter from two CoWs: making a key-value store with btrfs
- Is there a lightweight, stable and embedded database library?
- Building a Log-Structured Merge Tree in Go
- AWS and Blockchain
- Ma quanto sono inutili i notai?
-
A note from our sponsor - InfluxDB
www.influxdata.com | 21 Mar 2023
Index
What are some of the best open-source Key-Value projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | etcd | 42,871 |
2 | badger | 12,003 |
3 | immudb | 8,110 |
4 | buntdb | 4,050 |
5 | rosedb | 3,568 |
6 | nutsdb | 2,789 |
7 | Olric | 2,721 |
8 | redix | 1,165 |
9 | pogreb | 1,035 |
10 | IceFireDB | 969 |
11 | gokv | 524 |
12 | flashdb | 298 |
13 | sdb | 127 |
14 | badger | 122 |
15 | barreldb | 102 |
16 | go-mcache | 86 |
17 | microblob | 65 |
18 | redhub | 63 |
19 | regatta | 41 |
20 | vkv | 37 |
21 | gocask | 30 |
22 | hedge | 21 |
23 | gosqldb | 17 |