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