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.