The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 C++ Database Projects
-
LevelDB
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
I'm partial to how cleanly written https://github.com/google/leveldb is. It is a reasonable size to fully read & grok in not too long.
-
Project mention: Fair Benchmarking Considered Difficult (2018) [pdf] | news.ycombinator.com | 2024-03-10
I have a project dedicated to this topic: https://github.com/ClickHouse/ClickBench
It is important to explain the limitations of a benchmark, provide a methodology, and make it reproducible. It also has to be simple enough, otherwise it will not be realistic to include a large number of participants.
I'm also collecting all database benchmarks I could find: https://github.com/ClickHouse/ClickHouse/issues/22398
-
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.
-
RocksDB: A high-performance embedded database optimized for multi-core CPUs and fast storage like SSDs. Its use of a log-structured merge-tree (LSM tree) makes it suitable for applications requiring high throughput and efficient storage, such as streaming data processing.
-
Project mention: Build Your Own Uptime Monitor with MeteorJS + Fetch + Plotly.js ☄️🔭 | dev.to | 2024-03-08
MongoDB to store our data as documents, close to JS objects
-
sqlitebrowser
Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at:
Project mention: SQLite-Web: Web-based SQLite database browser written in Python | news.ycombinator.com | 2024-02-07 -
MMKV
An efficient, small mobile key-value storage framework developed by WeChat. Works on Android, iOS, macOS, Windows, and POSIX.
-
Project mention: DuckDB: Move to push-based execution model (2021) | news.ycombinator.com | 2024-03-15
-
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.
-
ArangoDB
🥑 ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.
Project mention: Ask HN: When is pure functional programming beneficial? | news.ycombinator.com | 2023-07-11... or working in an environment or on a problem for which functional patterns apply.
Suppose you are writing a "CRUD" app that writes to a relational database, how do you apply functional programming to that? The whole point of an application like that is that it makes side effects.
In some cases you can break those problems down into functional pieces. Consider Python drivers for a product like
One major problem is that you want drivers that work synchronously and asynchronously, the structure of the average api call is something like
def query(parameters):
-
Project mention: ScyllaDB: NoSQL data store using the seastar framework | news.ycombinator.com | 2024-03-16
-
NebulaGraph Database
A distributed, fast open-source graph database featuring horizontal scalability and high availability (by vesoft-inc)
-
oceanbase
OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.
Project mention: Show HN: OceanBase – An open-source distributed SQL database written in C++ | news.ycombinator.com | 2023-05-23 -
Why do you need to access the db from the file system? Can you just use something like https://github.com/mrousavy/react-native-mmkv ?
-
-
Project mention: Can we create a thread for some of the best materials on CS available online? | news.ycombinator.com | 2023-05-26
Introduction to Computing"
# Programming Language Theory:
"Programming Languages: Application and Interpretation"
# Compilation:
"Essentials of Compilation: An Incremental Approach in Python"
https://github.com/IUCompilerCourse/Essentials-of-Compilatio...
# Database Systems:
"CMU: Intro to Database Systems"
https://15445.courses.cs.cmu.edu/
"CMU: Advanced Database Systems"
https://15721.courses.cs.cmu.edu/
# Calculus I/II & Real Analysis
"A Course in Calculus and Real Analysis"
https://link.springer.com/book/10.1007/978-3-030-01400-1
"A Course in Multivariable Calculus and Analysis"
https://link.springer.com/book/10.1007/978-1-4419-1621-1
# Linear Algebra & ML:
* A Series of books by prof. Joe Suzuki without using any external library for the implementations *
"Statistical Learning with Math and Python"
https://link.springer.com/book/10.1007/978-981-15-7877-9
"Sparse Estimation with Math and Python"
https://link.springer.com/book/10.1007/978-981-16-1438-5
"Kernel Methods for Machine Learning with Math and Python"
https://link.springer.com/book/10.1007/978-981-19-0401-1
# Discrete Mathematics:
"CMU 21-228 Discrete Mathematics (prof. Poh-Shen Loh"
https://www.math.cmu.edu/~ploh/2021-228.shtml
# Cryptography:
"Serious Cryptography: A Practical Introduction to Modern Encryption"
https://nostarch.com/seriouscrypto
# Problem Solving:
"Math 235: Mathematical Problem Solving"
-
ydb
YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions
This is a good source for features that may/may not already be existing.
-
-
kvrocks
Apache Kvrocks is a distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol.
Project mention: Five Apache projects you probably didn't know about | news.ycombinator.com | 2023-12-20Another under the radar Apache project I've found myself using is Apache KvRocks
https://github.com/apache/kvrocks
It's a Redis compatible database on top of RocksDB, so unlike Redis it uses the disk instead of RAM, but you can control how much data is cached in RAM, obviously Kvrocks will be slower than Redis for uncached data.
Useful in situations where you want a KV data store that isn't limited by your memory specs but is compatible with everything that speaks Redis.
-
Project mention: Is there a way to monitor in real time all SQL commands Sent to SQL Server 2017 through Python | /r/learnpython | 2023-07-13
Python can script and view this via pyodbc... https://github.com/mkleehammer/pyodbc/wiki
-
Project mention: Show HN: Want something better than k-means? Try BanditPAM | news.ycombinator.com | 2023-04-04
> frown on that sort of dataset
That example was definitely contrived and designed to strongly illustrate the point. I'll counter slightly that non-peaky topologies aren't uncommon, but they're unlikely to look anything that would push KMedoids to a pathological state rather than just a slightly worse state ("worse" assuming that KMeans is the right choice for a given problem).
> worth pointing out .. data reference
Totally agreed. I hope my answer didn't come across as too negative. It's good work, and everyone else was talking about the positives, so I just didn't want to waste too much time echoing again that while getting the other points across.
> bolt reference
https://github.com/dblalock/bolt
They say as much in their paper, but they aren't the first vector quantization library by any stretch. Their contributions are, roughly:
1. If you're careful selecting the right binning strategy then you can cancel out a meaningful amount of discretization error.
2. If you do that, you can afford to choose parameters that fit everything nicely into AVX2 machine words, turning 100s of branching instructions into 1-4 instructions.
3. Doing some real-world tests to show that (1-2) matter.
Last I checked their code wasn't very effective for the places I wanted to apply it, but the paper is pretty solid. I'd replace it with a faster KMeans approximation less likely to crash on big data (maybe even initializing with KMedoids :) ), and if the thing you're quantizing is trainable with some sort of gradient update step then you should do a few optimization passes in the discretized form as well.
-
-
griddb
GridDB is a next-generation open source database that makes time series IoT and big data fast,and easy.
-
Project mention: Introducing ZXORM - A C++20 ORM for SQLite with Compile Time Type Safety | /r/cpp | 2023-03-30
Obligatory "how does it compare to" https://github.com/fnc12/sqlite_orm ?
-
Project mention: PLJS – JavaScript Language Plugin for PostreSQL | news.ycombinator.com | 2023-07-23
a bit more than an experiment at this point. pljs, even in its early state, has some very good results: https://github.com/plv8/plv8/issues/531#issuecomment-1627883...
passing through v8's javascript/c++ membrane has always been painful, and appears to be getting worse.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
C++ Database related posts
- DuckDB: Move to push-based execution model (2021)
- Fair Benchmarking Considered Difficult (2018) [pdf]
- How moving from Pandas to Polars made me write better code without writing better code
- Writing UDF for Clickhouse using Golang
- Fast persistent recoverable log and key-value store
- Nyan, yet Another Notation
- How to create a dynamic AI Discord bot with TypeScript
-
A note from our sponsor - WorkOS
workos.com | 19 Mar 2024
Index
What are some of the best open-source Database projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | LevelDB | 34,755 |
2 | ClickHouse | 33,475 |
3 | RocksDB | 27,083 |
4 | MongoDB | 25,246 |
5 | sqlitebrowser | 19,719 |
6 | MMKV | 16,677 |
7 | duckdb | 15,345 |
8 | ArangoDB | 13,308 |
9 | Scylla | 12,283 |
10 | NebulaGraph Database | 9,983 |
11 | oceanbase | 7,177 |
12 | react-native-mmkv | 4,941 |
13 | better-sqlite3 | 4,924 |
14 | bustub | 3,555 |
15 | ydb | 3,330 |
16 | heavydb | 2,885 |
17 | kvrocks | 2,833 |
18 | pyodbc | 2,819 |
19 | bolt | 2,444 |
20 | sqlcheck | 2,375 |
21 | griddb | 2,284 |
22 | sqlite_orm | 2,097 |
23 | plv8 | 1,836 |