Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/caolan/dust

P2P event streams
https://github.com/caolan/dust

event-sourcing p2p

Last synced: 4 days ago
JSON representation

P2P event streams

Awesome Lists containing this project

README

        

* Dust
A daemon for disseminating events over a peer-to-peer network.

** Install
*** Requirements
- [[https://code.call-cc.org/][CHICKEN Scheme 4.x]]
- [[https://libsodium.org][libsodium]]
- [[https://symas.com/offerings/lightning-memory-mapped-database/][LMDB]]
- [[http://miniupnp.free.fr/][miniupnpc]]

#+BEGIN_SRC shell
sudo apt-get install chicken-bin libsodium-dev liblmdb-dev libminiupnpc-dev
#+END_SRC

Currently (until https://bugs.call-cc.org/ticket/1352 is resolved), a patched version of the unix-sockets egg is required. Please fetch the source for this egg by doing:

#+BEGIN_SRC shell
chicken-install -r unix-sockets
#+END_SRC

Then apply the patch from the ticket and, in the unix-sockets directory, do:

#+BEGIN_SRC shell
chicken-install -s
#+END_SRC

*** Build and install
#+BEGIN_SRC shell
chicken-install -s
#+END_SRC

*** OpenBSD
On OpenBSD 6.1, I install these packages:

#+BEGIN_SRC shell
doas pkg_add chicken sodium miniupnpc
#+END_SRC

Then install LMDB from source:

#+BEGIN_SRC shell
git clone git://github.com/LMDB/lmdb
cd lmdb
git checkout LMDB_0.9.19
make
# "make install" doesn't work for me as the expected binaries don't all build
doas cp liblmdb.so /usr/local/lib/
doas cp liblmdb.a /usr/local/lib/
doas cp lmdb.h /usr/local/include/
#+END_SRC

Then build and install dust:

#+BEGIN_SRC shell
cd dust
CPATH=/usr/local/include doas chicken-install
#+END_SRC

Note: LMDB has to be used in MDB_WRITEMAP mode on OpenBSD due to the
lack of a unified buffer cache. LMDB environments will reserve their
full mapsize instead of growing as entries are added and nested
transactions will not be supported.

** Run tests
Install test dependencies.

#+BEGIN_SRC shell
chicken-install -s test test-generative data-generators
#+END_SRC

Run the unit tests.

#+BEGIN_SRC shell
csi -s tests/run.scm
#+END_SRC