Copyright (c) 2014-2015 Benoit Chesneau and the contributors.
Version: 0.4.2
Authors: Benoit Chesneau (benoitc@refuge.io
).
CowDB implements an indexed, key/value storage engine.
Look at the cowdb
module for the API usage.
main CowDB website is http://cowdb.org
To build CowDB you need to install rebar in your PATH
. Rebar is
available on Github:
https://github.com/rebar/rebar
Follow the README to install it.
Fetch the source code:
$ git clone https://github.com/refuge/cowdb.git
Build the source, run the make
command. It will fetch all required
dependencies.
$ cd /<PATH_TO>/cowdb
$ make
$ make test
1> {ok, Pid} = cowdb:open("testing.db").
{ok,<0.35.0>}
2> cowdb:put(Pid, a, 1).
{ok, 1}
3> cowdb:get(Pid, a).
{ok,{a,1}}
4> cowdb:mget(Pid, [a, b]).
[{ok,{a,1}},not_found]
5> cowdb:put(Pid, b, 2).
{ok, 2}
6> cowdb:mget(Pid, [a, b]).
[{ok,{a,1}},{ok,{b,2}}]
7> cowdb:mget(Pid, [a, b, c, d]).
[{ok,{a,1}},{ok,{b,2}},not_found,not_found]
8> cowdb:transact(Pid, [
{add, c, 2},
{remove, b},
{fn, fun(Db) ->
{ok, {a, V}} = cowdb:get(Db, a),
[{add, d, V}] end}]).
{ok, 3}
9> cowdb:mget(Pid, [a, b, c, d]).
[{ok,{a,1}},not_found,{ok,{c,2}},{ok,{d,1}}]
10> cowdb:fold(Pid, fun(Got, Acc) -> {ok, [Got | Acc]} end, []).
{ok,[{d,1},{c,2},{a,1}]}
The contributors are listed in AUTHORS. This project uses the MPL v2 license, see LICENSE.
cowdb uses the C4.1 (Collective Code Construction Contract) process for contributions.
Under C4.1 process, you are more than welcome to help us by:
To run the test suite:
$ make test
cowdb |
cowdb_util |