Top 23 Go Database Projects
-
prometheus
The Prometheus monitoring system and time series database.
It worked! Stopping Prometheus broke the active connection that Prometheus previously had with NewRelic. I wasn't aware that remote_write keeps an active connection; I was sure it just sends the data and closes the connection. Apparently, it is documented in the official changelog of Prometheus - 1.8.0 / 2017-10-06 - "..Remote storage connections use HTTP keep-alive..
-
etcd
Distributed reliable key-value store for the most critical data of a distributed system
etcd-io/etcd (Go): Distributed reliable key-value store for the most critical data of a distributed system
-
tidb
TiDB is an open source distributed HTAP database compatible with the MySQL protocol
pingcap/tidb (Go): TiDB is an open source distributed HTAP database compatible with the MySQL protocol
-
InfluxDB
Scalable datastore for metrics, events, and real-time analytics
Latest mention: Cannot set the Window Period when creating a check in the Alerts page. Anybody else having this issue? Just greyed out on the auto setting... Using v2.0.3 docker image | reddit.com/r/influxdb | 2021-01-19Can you file an issue on https://github.com/influxdata/influxdb/issues? That way I can have an engineer look into it
-
cockroach
CockroachDB - the open source, cloud-native distributed SQL database.
However if you ever fancy going for a newer tech, CockroachDB is a recent take on distributed SQL databases that's built with scalability in mind. Though from i gathered, deploying it is kind of an experiment in itself.
-
dgraph
Native GraphQL Database with graph backend
Latest mention: Ask HN: Which are the best go repositories to read to learn the language? | news.ycombinator.com | 2021-01-17I believe the best of the best use of Golang is being done by Dgraph.
They are the The world’s most advanced native GraphQL database with a graph backend.
Checkout their GitHub repo.
-
jaeger
CNCF Jaeger, a Distributed Tracing Platform
Our contributions already made their way into the recent project releases. We're working on bigger projects such as the Aggregated Trace Metrics proposal, to make Jaeger even more impactful, and with a more delighting user experience.
-
vitess
Vitess is a database clustering system for horizontal scaling of MySQL.
-
go-sql-driver/mysql
Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package
Latest mention: Web Development in Go: Middleware, Templating, Databases & Beyond | dev.to | 2021-01-27For example, here's how to use the MySQL driver package with database/sql:
-
groupcache
groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
Latest mention: Ask HN: Which are the best go repositories to read to learn the language? | news.ycombinator.com | 2021-01-17I really enjoyed google's https://github.com/golang/groupcache. Learned both about the language, and quality network application design
-
badger
Fast key-value DB in Go.
-
TinyGo
Go compiler for small places. Microcontrollers, WebAssembly, and command-line tools. Based on LLVM.
there's also TinyGo, though it's more specialized and doesn't support everything within the language (yet?).
-
rqlite
The lightweight, distributed relational database built on SQLite.
-
noms
The versioned, forkable, syncable database
Latest mention: CondensationDB: Build secure and collaborative apps [open-source] | news.ycombinator.com | 2021-01-25People that are interested in a similar feature set should check out https://github.com/attic-labs/noms and the SQL fork of Noms, https://github.com/dolthub/dolt
-
Tile38
Real-time Geospatial and Geofencing
-
pgweb
Cross-platform client for PostgreSQL databases
-
migrate
Database migrations. CLI and Golang library.
I ended up using a tool called golang-migrate CLI to create and apply migrations. Check out the link for instructions on how to install the CLI on your OS. I'm just going to install the CLI directly on my machine as it's a bit simpler than setting it up inside of Docker.
-
kingshard
A high-performance MySQL proxy
-
go-cache
An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
-
BigCache
Efficient cache for gigabytes of data written in Go.
-
go-pg
Golang ORM with focus on PostgreSQL features and performance
This one is mostly excellent: https://github.com/go-pg/pg
-
goleveldb
LevelDB key/value database in Go.
-
bbolt
An embedded key/value database for Go.
The original bolt repository is no longer maintained. A fork of bolt called bbolt is maintained and used by etcd. If you are not familiar with bolt, I recommend the articles Intro to BoltDB: Painless Performant Persistence and Bolt — an embedded key/value database for Go .
Index
What are some of the best open-source Database projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | prometheus | 34,970 |
2 | etcd | 34,514 |
3 | tidb | 26,617 |
4 | InfluxDB | 20,340 |
5 | cockroach | 19,804 |
6 | dgraph | 14,720 |
7 | jaeger | 12,696 |
8 | vitess | 11,299 |
9 | go-sql-driver/mysql | 10,434 |
10 | groupcache | 9,728 |
11 | badger | 8,744 |
12 | TinyGo | 7,393 |
13 | rqlite | 7,367 |
14 | noms | 7,319 |
15 | Tile38 | 7,227 |
16 | pgweb | 6,740 |
17 | migrate | 5,670 |
18 | kingshard | 5,531 |
19 | go-cache | 4,636 |
20 | BigCache | 4,602 |
21 | go-pg | 4,334 |
22 | goleveldb | 4,101 |
23 | bbolt | 4,009 |