This is an OCaml implementation of RingCast, a P2P hybrid (probabilistic/deterministic) dissemination protocol described in the paper PolderCast (and earlier in Hybrid Dissemination).
It organizes nodes in a bidirectional ring structure and forwards messages to neighbours as well as random nodes. It achieves complete dissemination of messages with a low message overhead.
This implementation is distributed under the MPL-2.0 license.
ringcast
can be installed via opam
:
opam install ringcast
opam install ringcast-lwt
To build from source, generate documentation, and run tests, use dune
:
dune build
dune build @doc
dune runtest -f -j1 --no-buffer
In addition, the following Makefile
targets are available
as a shorthand for the above:
make all
make build
make doc
make test
The documentation and API reference is generated from the source interfaces.
It can be consulted online or via odig
:
odig doc ringcast
odig doc ringcast-lwt