https://github.com/crossdb-org/crossdb
Ultra High-performance Lightweight Embedded and Server OLTP RDBMS✨
https://github.com/crossdb-org/crossdb
c cache cpp database embedded imdb in-memory json multi-index mysql oltp performance rdbms replication sql sqlite storage transaction
Last synced: 15 days ago
JSON representation
Ultra High-performance Lightweight Embedded and Server OLTP RDBMS✨
- Host: GitHub
- URL: https://github.com/crossdb-org/crossdb
- Owner: crossdb-org
- License: mpl-2.0
- Created: 2022-06-14T07:08:14.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-06-19T05:10:13.000Z (7 months ago)
- Last Synced: 2025-06-19T06:23:37.161Z (7 months ago)
- Topics: c, cache, cpp, database, embedded, imdb, in-memory, json, multi-index, mysql, oltp, performance, rdbms, replication, sql, sqlite, storage, transaction
- Language: C
- Homepage: https://crossdb.org
- Size: 1.03 MB
- Stars: 232
- Watchers: 6
- Forks: 18
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- fucking-awesome-cpp - CrossDB - Ultra High-performance Lightweight Embedded and Server OLTP RDBMS. [MPL-2.0] 🌎 [website](crossdb.org/) (Database)
- awesome-cpp - CrossDB - Ultra High-performance Lightweight Embedded and Server OLTP RDBMS. [MPL-2.0] [website](https://crossdb.org/) (Database)
README
Ultra High-performance Lightweight Embedded and Server OLTP RDBMS✨
## Features
| Name | **CrossDB**
---- | ----
Description | Ultra High-performance Lightweight Embedded and Server OLTP RDBMS✨
Primary database model | Relational DBMS
Secondary database models | Document store(JSON)
Key-value store(TBD)
Website | crossdb.org
Technical documentation | crossdb.org/intro
Initial release | 2023
License | Open Source, MPL
Cloud-based only | no
Implementation language | C
Server operating systems | Server-Less Mode
Embedded Server Mode
Standalone Server Mode
Linux/MacOS/Windows/FreeBSD
32-bit or 64-bit X86, ARM, PowerPC, MIPS, etc
Data scheme | yes
Typing | yes
BOOL
TINYINT, SMALLINT, INT, BIGINT
UNSIGNED TINYINT, SMALLINT, INT, BIGINT
TIMESTAMP
FLOAT, DOUBLE
CHAR, VARCHAR
BINARY, VARBINARY
INET(IPv4/IPv6 host and subnet), MAC address
JSON
XML support | no
Secondary indexes | yes
HASH, RBTREE(TBD)
SQL | yes, many extensions from MySQL
APIs and other access methods | Proprietary native APIs
Multi-statement APIs
Prepared statement APIs
Supported programming languages | C, C++, Python, GO, Rust
More bindings(TBD)
Server-side scripts | LUA(TBD)
Triggers | yes, native languages
Partitioning methods | none
Replication methods | Source-replica replication
Multi-source replication
Logical Replication(TBD)
Data Subscription | yes(TBD)
MapReduce | no
Consistency concepts | Immediate Consistency
Foreign keys | yes(TBD)
TTL | yes
Transaction concepts | ACID
Concurrency | yes
Table-level read-write locks
Row-level read-write locks(TBD)
Reader-Writer MVCC (write transaction doesn't block read transactions)
PostgreSQL-like MVCC(TBD)
Durability | yes, WAL
In-memory capabilities | yes
User concepts | yes(TBD)
Storage Model | Row-oriented On-Disk, In-Memory, RamDisk
Hybrid Storage (on a table-by-table basis, tables can be designated for in-memory or on-disk storage)
Admin | Embedded shell
xdb-cli tool
telnet
WEB GUI(TBD)
## Build and Install
### Download code
```bash
git clone https://github.com/crossdb-org/crossdb.git
cd crossdb
```
### Linux/MacOS/FreeBSD
```bash
make build
sudo make install
```
### Windows
You need to install [MINGW64](https://www.mingw-w64.org/) to build.
Then set the `gcc` path to `system environment variables` `Path` and make sure `gcc` can run.
```
winbuild.bat
```
### CMake
```
cd build
cmake ..
make
sudo make install
```
**Windows**
You need to install [MINGW64](https://www.mingw-w64.org/) [CMAKE](https://cmake.org/download/) and [make](https://gnuwin32.sourceforge.net/packages/make.htm) to build.
```
cd build
cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc ..
make
```
## Contribution
This project is still in its early stages and currently lacks stability. We welcome the following contributions:
- **Language bindings**: `Python`, `Java`, `Go`, `CSharp`, `JavaScript`, `PHP`, etc.
- **Bug Reporting**: Identify and report any issues or bugs you encounter.
- **Testing**: Participate in testing to ensure the reliability and stability of the project.
Your contributions will be greatly appreciated and will help us make this project more robust and reliable.
## Reference
### 1,000,000 Rows Random Access Benchmark vs. SQLite
https://crossdb.org/blog/benchmark/crossdb-vs-sqlite3/
### 1,000,000 Rows Random Access Benchmark vs. C++ STL Map and HashMap
https://crossdb.org/blog/benchmark/crossdb-vs-stlmap/
### SQL Statements
https://crossdb.org/sql/statements/
### APIs
https://crossdb.org/client/api-c/
### Tutorial
https://crossdb.org/get-started/tutorial/
### CrossDB Server
https://crossdb.org/develop/server/
### CrossDB Replication
https://crossdb.org/develop/replication/
### CrossDB JSON
https://crossdb.org/sql/json/