commit | f4e7e2beddb988418724f5ed42949840a98f00a8 | [log] [tgz] |
---|---|---|
author | Adam Kocoloski <kocolosk@apache.org> | Tue Nov 02 16:42:51 2021 -0400 |
committer | Adam Kocoloski <kocolosk@apache.org> | Sat Nov 06 10:30:06 2021 -0400 |
tree | bf591ba7d72487207cf8f195ba34f832787584b5 | |
parent | 68211f31c26d4a42d27e59827a6507be7cbc2dc9 [diff] |
Enable CI using GitHub Actions This patch sets up a simple GH Action configuration to build and unit test erlfdb on Windows and Linux. We could get a lot fancier here; my initial goal was simply to avoid regressions in x-platform support. I'm using a handful of third-party actions to make this setup work: - https://github.com/erlef/setup-beam - https://github.com/ilammy/msvc-dev-cmd - https://github.com/mxschmitt/action-tmate ASF policy prohibits the direct use of third-party Actions because it's not possible to code review each chamnge to them. Importing them as a submodule pins the action to a specific commit and is the accepted workaround at this time.
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.
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.
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
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.