All Projects → crclark → foundationdb-haskell

crclark / foundationdb-haskell

Licence: BSD-3-Clause license
Haskell FFI bindings to the FoundationDB C API

Programming Languages

haskell
3896 projects
c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to foundationdb-haskell

akka-persistence-foundationdb
A replicated Akka Persistence journal backed by FoundationDB
Stars: ✭ 43 (+34.38%)
Mutual labels:  foundationdb
coqffi
Coq to OCaml FFI made easy [maintainer=@lthms]
Stars: ✭ 27 (-15.62%)
Mutual labels:  ffi-bindings
rust-ffi-examples
FFI examples written in Rust
Stars: ✭ 42 (+31.25%)
Mutual labels:  ffi-bindings
cuda
Haskell FFI bindings to CUDA
Stars: ✭ 73 (+128.13%)
Mutual labels:  ffi-bindings
ffi-libc
Useful Ruby FFI bindings for libc
Stars: ✭ 32 (+0%)
Mutual labels:  ffi-bindings
OCaml-GObject-Introspection
OCaml bindings to GObject-Introspection based on OCaml-Ctypes.
Stars: ✭ 15 (-53.12%)
Mutual labels:  ffi-bindings
eta-ffi
A command line tool to automate the generation of ffi import code for the bindings of various Java libraries.
Stars: ✭ 19 (-40.62%)
Mutual labels:  ffi-bindings
odbc-rs
Rust ODBC FFI binding
Stars: ✭ 90 (+181.25%)
Mutual labels:  ffi-bindings
cztop
CZMQ binding for Ruby
Stars: ✭ 30 (-6.25%)
Mutual labels:  ffi-bindings
cargo-valgrind
A cargo subcommand, that runs valgrind and displays its output in a helpful manner.
Stars: ✭ 66 (+106.25%)
Mutual labels:  ffi-bindings
raml
OCaml runtime and FFI bindings directly in Rust
Stars: ✭ 75 (+134.38%)
Mutual labels:  ffi-bindings
fsevent-rust
FSEvent bindings for rust.
Stars: ✭ 38 (+18.75%)
Mutual labels:  ffi-bindings
Foundationdb
FoundationDB - the open source, distributed, transactional key-value store
Stars: ✭ 10,937 (+34078.13%)
Mutual labels:  foundationdb
foundationdb-dotnet-client
C#/.NET Binding for FoundationDB Client API
Stars: ✭ 118 (+268.75%)
Mutual labels:  foundationdb
fdb-zk
ZooKeeper server on top of FoundationDB
Stars: ✭ 22 (-31.25%)
Mutual labels:  foundationdb
couchdb-erlfdb
Erlang API for FoundationDB
Stars: ✭ 24 (-25%)
Mutual labels:  foundationdb

GitHub CI

API Docs

Haskell bindings for the FoundationDB C client. Currently contains FFI bindings to all of the C API, a Transaction monad for defining 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 through 7.1.x. By default, this package builds assuming that you have installed the latest supported version of FoundationDB. If not, you need to set the appropriate flag when building the library. For example, if you installed FoundationDB 6.0.x, you need to build with

stack build --flag foundationdb-haskell:fdb-version-600

or

cabal configure -f fdb-version-600 && cabal build

Development

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

this will create a number of files in the current directory, which should be moved to src/FoundationDB/Options/. A few of the generated files are redundant with what's already generated by c2hs from the header file, and should be omitted.

Generating docs/

stack hoogle --keep-going

copy result to docs/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].