Developing a database in Go

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • nebula-graph

    Discontinued A distributed, fast open-source graph database featuring horizontal scalability and high availability. This is an archived repo for v2.5 only, from 2.6.0 +, NebulaGraph switched back to https://github.com/vesoft-inc/nebula

  • That problem you faced is a reason why Graph databases were created. Take a look at NebulaGraph https://nebula-graph.io/ which has an SQL-like query syntax and already has all the features you mention in your list.

  • chai

    Modern embedded SQL database (by chaisql)

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • rqlite

    The lightweight, distributed relational database built on SQLite.

  • I've written a couple of blogs posts on my experience developing rqlite (and databases in general):

  • hydradb

    A multi-model, scalable database written in Go

  • goostub

    Porting bustub (https://github.com/cmu-db/bustub) in Go for fun (that's why I name it goostub)

  • One of them is https://github.com/pzhzqt/goostub, the others are just similar to this. The original Bustub project from CMU that is in C++ only provides the main interface and the storage layer of the database (same as the link above in Go). The actual implementations are done by students during the semester. So you have to build the buffer pool, index trees, hash tables etc. Here are the assignments with full details: https://15445.courses.cs.cmu.edu/fall2020/assignments.html. As far as I have seen there are no solutions nor full implementations in Go (not even in C++) because CMU like any other uni has the policy that you will get suspended if you make your solution public or you copy it. Some non complete solutions for the first assignments have leaked, but they contain bugs and it's just better if you solve them from scratch yourself. Hope this helps!

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts