This work is funded by NSF grant 1637385. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
This repository contains the unified code for the clients and servers for the FuzzyLog project; an experiment in partially ordered SMR. A companion repository contains the remaining benchmark code.
C bindings and documentation are currently located in fuzzylog.h
.
A helloworld using them can be found in examples/hello_c
Download and install rust (easiest way is curl https://sh.rustup.rs -sSf | sh
).
Clone this repository.
To run local tests
cargo test
NOTE: The first build will be much slower than subsequent ones
as it needs to download dependencies.
NOTE: Due to the very large number of sockets the test suite opens, running
the entire test sweet concurrently often causes tests to fail with
Too many open files
. To fix this either run in single threaded mode
(RUST_TEST_THREADS=1 cargo test
) or run only a subset of the test suite.
A CLI binding for starting FuzzyLog servers can be found in servers/tcp_server.
- src/tests the FuzzyLog regression tests.
- examples sample code which uses the client library to perform vaious tasks, of note are:
- hello_c a C helloworld example.
- hello_rust the corresponding rust example.
- servers/tcp_server a TCP based fuzzy log sever.
- clients various DPDK based clients for use in testing (obsolescent).
- fuzzy_log_server the fuzzy log server implementation library.
- fuzzy_log_client the fuzzy log client implementation library.