C++ Database

Open-source C++ projects categorized as Database

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.

    Project mention: Codebases to read | /r/cpp | 2023-12-05

    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.

  • ClickHouse

    ClickHouse® is a free analytics DBMS for big data

    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 library that provides an embeddable, persistent key-value store for fast storage.

    Project mention: How to choose the right type of database | dev.to | 2024-02-28

    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.

  • MongoDB

    The MongoDB Database

    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.

  • duckdb

    DuckDB is an in-process SQL OLAP Database Management System

    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

    https://www.arangodb.com/

    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):

  • Scylla

    NoSQL data store using the seastar framework, compatible with Apache Cassandra

    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
  • react-native-mmkv

    ⚡️ The fastest key/value storage for React Native. ~30x faster than AsyncStorage!

    Project mention: Key/value store with expo | /r/reactnative | 2023-06-24

    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 ?

  • better-sqlite3

    The fastest and simplest library for SQLite3 in Node.js.

    Project mention: From Frontend to Backend | /r/cscareerquestionsEU | 2023-12-08
  • bustub

    The BusTub Relational Database Management System (Educational)

    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"

    https://dcic-world.org/

    # Programming Language Theory:

    "Programming Languages: Application and Interpretation"

    https://www.plai.org/

    # 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"

    https://www.cip.ifi.lmu.de/~grinberg/t/20f/

  • ydb

    YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions

    Project mention: YDB – an open source distributed SQL database | news.ycombinator.com | 2024-02-03

    This is a good source for features that may/may not already be existing.

    https://github.com/ydb-platform/ydb/blob/main/ROADMAP.md

  • heavydb

    HeavyDB (formerly OmniSciDB)

  • 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-20

    Another 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.

  • pyodbc

    Python ODBC bridge

    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

  • bolt

    10x faster matrix and vector operations (by dblalock)

    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.

  • sqlcheck

    Automatically identify anti-patterns in SQL queries

  • griddb

    GridDB is a next-generation open source database that makes time series IoT and big data fast,and easy.

    Project mention: griddb: NEW Data - star count:2133.0 | /r/algoprojects | 2023-07-31
  • sqlite_orm

    ❤️ SQLite ORM light header only library for modern C++

    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 ?

  • plv8

    V8 Engine Javascript Procedural Language add-on for PostgreSQL

    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

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-03-16.

C++ Database related posts

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
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com