The project is organized into two crates:
spatialbench
: The core library that implements the data generation logic for SpatialBench.spatialbench-arrow
: Generates the Spatial Bench data directly as the Apache Arrow in memory formatspatialbench-cli
: A CLI tool that uses the spatialbench
library to generate SpatialBench data.The spatialbench
crate is designed to be embeddable in as many locations as possible and thus has no dependencies by design. For example, it does not depend on arrow or parquet crates or display libraries.
spatialbench-arrow
is similarly designed to be embeddable with minimal dependencies and only depends on the arrow
crate
The spatialbench-cli
crate is designed to include many useful features, and thus has many more dependencies.
Speed is a very important aspect of this project, and care has been taken to keep the code as fast as possible, using some of the following techniques: