Introduction

obigstore can be useful if some of these hold:

obigstore features a semi-structured BigTable-like data model. For more information on the operations it supports, you can refer to the data model in the OCaml library and the list of operations supported by the simplified text-based protocol (the latter is a subset of the former).

Getting started

The getting started guide indicates how to get the source, build the server, run it and use the REPL.

API

obigstore is implemented in OCaml and includes an OCaml API that exposes the full data model. Client code written in other languages can communicate to the server using a simple text-based protocol that resembles redis' unified request protocol.

Help wanted Contributions in the form of bindings for other languages are very welcome. I will try to provide support in the form of documentation and implementation guides.

OCaml API

Refer to the .mli files. A client will have to do something like:

module C = Obs_protocol_client.Make(Obs_protocol_bin.Version_0_0_0)

...
let addr = Unix.ADDR_INET (Unix.addr_of_string server, port) in
let data_address = Unix.ADDR_INET (Unix.addr_of_string server, port + 1) in
lwt ich, och = Lwt_io.open_connection addr in
lwt db = C.make ~data_address ich och ~role ~password in
  ...
  perform operations on db as documented in Obs_data_model.S
  ....

Simplified text-based protocol

Durability

Benchmarks

You can find a number of benchmarks here.