Software architecture
KantoDB is programmed in Rust. (For v0 and v1, we're using the RocksDB library for data storage, which is written in C++.)
KantoDB stands on the shoulders of giants fairly tall people.
- DataFusion
- Apache Arrow
- sqlparser
- pgwire
- RocksDB
KantoDB uses the DataFusion library for query planning and execution. DataFusion in turn uses the Apache Arrow in-memory data exchange format. Arrow is a column-oriented format designed with SIMD optimizations in mind. This makes KantoDB essentially a hybrid row/columnar database; with RocksDB, the on-disk storage is still row-based, but as we scan a table or index and load data into memory, it is made columnar.