GitHub - crossdb-org/crossdb: Ultra High-performance Lightweight Embedded and Server OLTP RDBMS✨ (original) (raw)

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 ModeEmbedded Server ModeStandalone Server ModeLinux/MacOS/Windows/FreeBSD32-bit or 64-bit X86, ARM, PowerPC, MIPS, etc
Data scheme yes
Typing yesBOOLTINYINT, SMALLINT, INT, BIGINTUNSIGNED TINYINT, SMALLINT, INT, BIGINTTIMESTAMPFLOAT, DOUBLECHAR, VARCHARBINARY, VARBINARYINET(IPv4/IPv6 host and subnet), MAC addressJSON
XML support no
Secondary indexes yesHASH, RBTREE(TBD)
SQL yes, many extensions from MySQL
APIs and other access methods Proprietary native APIsMulti-statement APIsPrepared statement APIs
Supported programming languages C, C++, Python, GO, RustMore bindings(TBD)
Server-side scripts LUA(TBD)
Triggers yes, native languages
Partitioning methods none
Replication methods Source-replica replicationMulti-source replicationLogical Replication(TBD)
Data Subscription yes(TBD)
MapReduce no
Consistency concepts Immediate Consistency
Foreign keys yes(TBD)
TTL yes
Transaction concepts ACID
Concurrency yesTable-level read-write locksRow-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, RamDiskHybrid Storage (on a table-by-table basis, tables can be designated for in-memory or on-disk storage)
Admin Embedded shellxdb-cli tooltelnetWEB GUI(TBD)

Build and Install

Download code

git clone https://github.com/crossdb-org/crossdb.git cd crossdb

Linux/MacOS/FreeBSD

make build sudo make install

Windows

You need to install MINGW64 to build. Then set the gcc path to system environment variables Path and make sure gcc can run.

CMake

cd build
cmake ..
make
sudo make install

Windows

You need to install MINGW64 CMAKE and make 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:

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/