Hot-swappable backends
Using a different backend is really as simple as re-building cuprate_database
with a different feature flag:
# Use LMDB.
cargo build --package cuprate-database --features heed
# Use redb.
cargo build --package cuprate-database --features redb
This is "good enough" for now, however ideally, this hot-swapping of backends would be able to be done at runtime.
As it is now, cuprate_database
cannot compile both backends and swap based on user input at runtime; it must be compiled with a certain backend, which will produce a binary with only that backend.
This also means things like CI testing multiple backends is awkward, as we must re-compile with different feature flags instead.