Skip to content

crossdb-org/crossdb

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 (TBD)
Key-value store(TBD)
Website crossdb.org
Technical documentation crossdb.org/intro
Developer JC Wang
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
TIMESTAMP
FLOAT, DOUBLE
CHAR, VARCHAR
BINARY, VARBINARY
INET(IPv4/IPv6 host and subnet), MAC address
XML support no
Secondary indexes yes
HASH, RBTREE
SQL yes, many extensions from MySQL
APIs and other access methods Proprietary native APIs
Multi-statement APIs
Prepared statement APIs
JDBC (TBD)
ODBC (TBD)
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 (TBD)
Multi-source replication (TBD)
Logical Replication (TBD)
Data Subscription yes (TBD)
MapReduce no
Consistency concepts Immediate Consistency
Foreign keys yes (TBD)
TTL yes (TBD)
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

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.

winbuild.bat

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:

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

https://crossdb.org/admin/shell/#connect-to-crossdb-server