README.md

This commit is contained in:
Tony Garnock-Jones 2021-05-12 15:36:18 +02:00
parent a9b4baa05a
commit 9090d28261
2 changed files with 67 additions and 0 deletions

67
README.md Normal file
View File

@ -0,0 +1,67 @@
# Syndicate/rs
A Rust implementation of:
- the Syndicate network protocol, including
- a high-speed Dataspace indexing structure (see
[HOWITWORKS.md](https://git.syndicate-lang.org/syndicate-lang/syndicate-rkt/src/commit/90c4c60699069b496491b81ee63b5a45ffd638cb/syndicate/HOWITWORKS.md)
from `syndicate-rkt`),
- a standalone Syndicate protocol *broker* service, and
- a handful of [examples](examples/).
![The Syndicate/rs server running.](syndicate-rs-server.png)
*The Syndicate/rs server running.*
## Quickstart
git clone https://git.syndicate-lang.org/syndicate-lang/syndicate-rs
cd syndicate-rs
cargo build --release
./target/release/syndicate-server
## Running the examples
In one window, start the server:
./target/release/syndicate-server
Then, choose one of the examples below.
### Producer/Consumer (sending messages)
In a second window, run a "consumer" process:
./target/release/examples/consumer
Finally, in a third window, run a "producer" process:
./target/release/examples/producer
### State producer/consumer (state replication)
Replace `producer` with `state-producer` and `consumer` with
`state-consumer`, respectively, in the instructions of the previous
subsection to demonstrate Syndicate *state replication*.
### Pingpong example (latency)
In a second window, run
./target/release/examples/pingpong pong
and in a third window, run
./target/release/examples/pingpong ping
The order is important - the difference between `ping` and `pong` is
about who kicks off the pingpong session.
### Performance note
You may find better performance by restricting the server to fewer
cores than you have available. For example, for me, running
taskset -c 0,1 ./target/release/syndicate-server
roughly *quadruples* throughput for a single producer/consumer pair,
on my 48-core AMD CPU.

BIN
syndicate-rs-server.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB