Dretch / foundationdb-haskell

Haskell FFI bindings to the FoundationDB C API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

Haskell bindings for the FoundationDB C client. Not entirely finished, but quite usable. Currently contains FFI bindings to all of the C API, a Transaction monad for running transactions (example), and implementations of the standard tuple, subspace and directory layers.

I am not using this in a production-like context, but I have exercised the code rather heavily (heavy transaction rates for days at a time) in both local and cloud environments. The major missing component is directory partitions, but I haven't needed them yet. Generally speaking, the directory layer is the least exercised part of the library.

Supported FoundationDB versions

Currently supports 5.2.x, 6.0.x, and 6.1.x.

Generating options from fdb.options

FoundationDB provides a specification of available client options. We generate the FoundationDB.Options module from this file with the generate-options executable in this project.

To build the generate-options executable, pass the with-generate-options flag when building. For example, when building with stack, the command is

stack build --flag foundationdb-haskell:with-generate-options

You can then invoke it on fdb.options.

stack exec generate-options -- --file /usr/include/foundationdb/fdb.options > src/FoundationDB/Options.hs

About

Haskell FFI bindings to the FoundationDB C API

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Haskell 99.7%Language:C 0.3%