# Databases

## Interesting

* [Mentat](https://github.com/mozilla/mentat) - Persistent, relational store inspired by Datomic and DataScript.
* [RocksDB](https://github.com/facebook/rocksdb) - Persistent Key-Value Store for Flash and RAM Storage.
* [goleveldb](https://github.com/syndtr/goleveldb) - LevelDB key/value database in Go.
* [tikv](https://github.com/tikv/tikv) - Distributed transactional key-value database, originally created to complement TiDB.
  * [pd](https://github.com/pingcap/pd) - Placement driver for TiKV.
* [Noria](https://github.com/mit-pdos/noria) - Dynamically changing, partially-stateful data-flow for web application backends.
* [RethinkDB](https://www.rethinkdb.com/) - Pushes JSON to your apps in realtime.
* [RedixDB](https://github.com/alash3al/redix) - Persistent real-time key-value store, with the same redis protocol with powerful features.
* [AresDB](https://github.com/uber/aresdb) - GPU-powered real-time analytics storage and query engine.
* [Sophia](https://github.com/pmwkaa/sophia) - Modern transactional key-value/row storage library.
* [TiDB](https://github.com/pingcap/tidb) - Distributed HTAP database compatible with the MySQL protocol.
* [Bolt](https://github.com/boltdb/bolt) - Pure Go key/value store inspired by Howard Chu's LMDB project.

## Tools

* [TablePlus](https://tableplus.io/)

## Links

* [Stanford DB course](https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about)
* [Algebraic Query Language](http://categoricaldata.net/aql.html) - Schemas as categories, DB instances as functors, provable data migration as functor composition.
* [David Nolen: Out of the Tarpit, Revisited (2017)](https://www.youtube.com/watch?v=7y1phdZkLw4)
* [syncing-thesis](https://github.com/mirkokiefer/syncing-thesis) - Syncing strategies for mobile apps.
* [Storage Performance Development Kit](https://spdk.io/) - Provides a set of tools and libraries for writing high performance, scalable, user-mode storage applications.
