Top 23 Go Database Projects
-
prometheus
The Prometheus monitoring system and time series database.
Prometheus Might be a good choice for you. I've used this with c# and the app.metrics library before and it was a pretty comprehensive solution for our monitoring needs. The only issue is that it is pull based instead of push based so you need to implement some sort of service discovery if your services scale up and down. With kubernetes there is the prometheus operator which will just work, otherwise you're going to have to use consul or something.
-
etcd
Distributed reliable key-value store for the most critical data of a distributed system
-
Scout
Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
-
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
Project 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.
Use a relational database such as PostgreSQL or MySQL. I do not recommend using document databases such as MongoDB because there is really no reason for it in my opinion. PostgreSQL is plenty fast and you probably won't need things like horizontal scaling for a side project. You can of course try something fancy like FaunaDB, CockroachDB, or any of the many database flavors.
-
dgraph
Native GraphQL Database with graph backend
Project mention: What is the difference between mySQL and PostgreSQL | reddit.com/r/webdev | 2021-02-16(DGraph)https://dgraph.io/ recently has pivoted and is now offering some degree of GraphQL natively supported as a query language to their database, but I found their documentation to be incomplete for the time being.
-
jaeger
CNCF Jaeger, a Distributed Tracing Platform
Project mention: Go, Kafka, gRPC and MongoDB microservice with metrics and tracing 👋 | dev.to | 2021-02-28This article about tries to implement of clean architecture microservice using: 🚀 Kafka as messages broker gRPC Go implementation of gRPC MongoDB as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus
-
vitess
Vitess is a database clustering system for horizontal scaling of MySQL.
Project mention: Why Uber Engineering Switched from Postgres to MySQL | news.ycombinator.com | 2021-02-27 -
go-sql-driver/mysql
Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package (by go-sql-driver)
Project 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.
Project mention: Can you recommend open source projects with small codebase, but with high benefits for learning? | reddit.com/r/golang | 2021-02-22 -
badger
Fast key-value DB in Go.
-
rqlite
The lightweight, distributed relational database built on SQLite
-
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?).
-
noms
The versioned, forkable, syncable database
Project mention: Dolt is Git for Data: a SQL database that you can fork, clone, branch, merge | news.ycombinator.com | 2021-03-06Noms might be what you’re looking for (https://github.com/attic-labs/noms). Dolt is actually a fork of Noms.
-
Tile38
Real-time Geospatial and Geofencing
-
pgweb
Cross-platform client for PostgreSQL databases
-
migrate
Database migrations. CLI and Golang library.
Filesystem, reads from filesystem, or
-
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.
Though pretty simple but have a look at https://github.com/patrickmn/go-cache
-
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
-
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 .
-
goleveldb
LevelDB key/value database in Go.
Index
What are some of the best open-source Database projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | prometheus | 35,591 |
2 | etcd | 34,943 |
3 | tidb | 26,998 |
4 | InfluxDB | 20,817 |
5 | cockroach | 20,003 |
6 | dgraph | 15,490 |
7 | jaeger | 12,918 |
8 | vitess | 11,462 |
9 | go-sql-driver/mysql | 10,557 |
10 | groupcache | 9,856 |
11 | badger | 8,910 |
12 | rqlite | 7,803 |
13 | TinyGo | 7,579 |
14 | noms | 7,351 |
15 | Tile38 | 7,283 |
16 | pgweb | 6,785 |
17 | migrate | 5,949 |
18 | kingshard | 5,586 |
19 | go-cache | 4,757 |
20 | BigCache | 4,685 |
21 | go-pg | 4,433 |
22 | bbolt | 4,185 |
23 | goleveldb | 4,160 |