Add a matrix job to run binding tests

This job uses the same container image as the .devcontainer. It runs
each of the binding tests for every supported API version (currently
620 and 630), except for `scripted` which only works with the current
API version. It relies on a service container for the underlying FDB
server.
1 file changed
tree: ec53b74eb334071cd7223d55f793ffe432ba7b62
  1. .devcontainer/
  2. .github/
  3. c_src/
  4. include/
  5. notes/
  6. plugins/
  7. priv/
  8. src/
  9. test/
  10. .asf.yaml
  11. .gitignore
  12. .gitmodules
  13. BINDING_TESTER.md
  14. devcontainer.config
  15. LICENSE
  16. Makefile
  17. README.md
  18. rebar.config
  19. rebar.config.script
  20. rebar.lock
  21. win32_external_fdbserver.config
README.md

An Erlang Binding to FoundationDB

CI

This project is a NIF wrapper for the FoundationDB C API. Documentation on the main API can be found here.

This project also provides a conforming implementation of the Tuple and Directory layers.

Building

Assuming you have installed the FoundationDB C API library, building erlfdb is as simple as:

$ make

Alternatively, adding erlfdb as a rebar dependency should Just Work ®.

Documentation for installing FoundationDB can be found here for macOS or here for Linux.

Quick Example

A simple example showing how to open a database and read and write keys:


Eshell V9.3.3.6 (abort with ^G) 1> Db = erlfdb:open(<<"/usr/local/etc/foundationdb/fdb.cluster">>). {erlfdb_database,#Ref<0.2859661758.3941466120.85406>} 2> ok = erlfdb:set(Db, <<"foo">>, <<"bar">>). ok 3> erlfdb:get(Db, <<"foo">>). <<"bar">> 4> erlfdb:get(Db, <<"bar">>). not_found

Binding Tester

FoundationDB has a custom binding tester that can be used to test whether changes have broken compatibility. See the BINDING_TESTER documentation for instructions on building and running that system.