Like it is explained in the SRFI document there is various database libraries
that can be used to implement SRFI 167 library. In the following I will go through
those that I know about, describe them and add a few comments.

# FoundationDB

FoundationDB (FDB) is a distributed database that support ACID transactions.
It has a client library written in C that support both synchronous and asynchronous
code and several independent client libraries in particular nodejs and erlang.

SRFI 167 (okvstore) is based on FDB as it is the common denominator of Ordered
Key-Value stores. In particular, okvstore doesn't include 'previous' and 'next'
procedures that would allow to navigate the key space because FDB doesn't provide
such a thing.

License: Apache 2

## What is common?

Both `pack` and `unpack` procedure are based on FDB's Python implementation
(which implementation in scheme might require more work) and are meant to be
compatible somehow.

`transactional` procedure is based on FDB's Python implementation and found's

## Differences

SRFI 167 doesn't mention versionstamp but is forward compatible and portable
across databases. Versionstamp are monotonically increasing (but not sequential)
unique identifiers. As far as I understand they are an optimisation over manually
allocating a unique identifier with the advantage of being monotonically increasing.

It can be implemented as part of `pack` and `unpack` see the Python implementation,
it is also implemented in javascript and Java bindings. Mind the fact that in FDB,
versionstamp are computed by the server. 

# LevelDB

LevelDB is widely available ordered key value store. It doesn't support transactions.
It has C bindings. If you need a transactions with liberal license you most likely want
to use RocksDB see below.

Like SRFI 167 and FDB it expose a single key namespace.


License: BSD

# RocksDB

RocksDB is fork of LevelDB that among other things support transactions.

License: Apache 2 or GPLv2

# LMDB

LMDB is another widely available ordered key-value store that is used
in OpenLDAP. You can find various benchmarks on its website among


License: OpenLDAP Public License

# WiredTiger

Unlike SRFI-167, WiredTiger expose multiple key-value spaces name tables.
It has a notion of cursor and allows to navigate key space with `previous`
and `next. It is a superset of SRFI 167.


License: GPLv2