Ultra High-performance Lightweight Embedded and Server OLTP RDBMS✨
CrossDB is a ultra high-performance, lightweight embedded and server OLTP RDBMS. It is designed for high-performance scenarios where the main memory can hold the entire database.
- Supports multiple OS platforms: Linux, Windows, MacOS, FreeBSD, etc.
- Supports multiple CPU architectures: X86, ARM, PPC, MIPS, etc.
- Supports OnDisk, In-memory (IMDB), RamDisk, and Hybrid Storage.
- Supports the standard RDBMS model.
- Supports standard SQL and many extensions from MySQL.
- Supports multiple databases.
- Supports embedded and client-server modes.
- Supports primary keys and multiple secondary indexes.
- Supports HASH and RBTREE (TBD) indexes.
- Supports multi-column indexes.
- Supports exact match, leftmost match (TBD), and range match (TBD).
- Supports standard ACID transactions.
- Supports WAL for OnDisk storage.
- Supports multiple threads and multiple processes access.
- Supports table-level read-write locks.
- Supports Reader-Writer MVCC (write transaction doesn't block read transactions).
- Supports an embedded CrossDB shell with convenient auto-completion.
- Supports multi-statement APIs.
- Supports prepared statement APIs.
- Ultra high performance.
- Very simple: Simple header and library file.
- Zero config: No complex configuration, truly out-of-the-box.
- High-frequency trading (OLTP).
- High-performance queries.
- High-performance data management: Use CrossDB OnDisk DB to store data on HDD/SSD/Flash.
- High-performance IMDB: Use CrossDB In-Memory DB to manage process runtime data, replacing STL or hand-written data structures.
- Use CrossDB RamDisk DB to support process restartability and in-service software upgrades (ISSU) easily.
- Use CrossDB as a super-fast cache DB.
git clone https://github.com/crossdb-org/crossdb.git
cd crossdb
make build
sudo make install
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
cd build
cmake ..
make
sudo make install
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.
https://crossdb.org/blog/benchmark/crossdb-vs-sqlite3/
https://crossdb.org/blog/benchmark/crossdb-vs-stlmap/
https://crossdb.org/sql/statements/
https://crossdb.org/client/api-c/
https://crossdb.org/get-started/tutorial/