|Tony Garnock-Jones c0b5623310||2 years ago|
|dev-scripts||2 years ago|
|syndicate||2 years ago|
|syndicate-macros||2 years ago|
|syndicate-server||2 years ago|
|.gitignore||2 years ago|
|Cargo.lock||2 years ago|
|Cargo.toml||2 years ago|
|Makefile||2 years ago|
|README.md||2 years ago|
|rust-toolchain||2 years ago|
|syndicate-rs-server.png||2 years ago|
A Rust implementation of:
the Syndicated Actor model (partial; includes assertion-based communication, failure-handling, capability-style security, and dataspace entities, but not (yet) facets as a structuring principle);
the Syndicate network protocol, including
a high-speed Dataspace indexing structure (
skeleton.rs; see also HOWITWORKS.md from
a standalone Syndicate protocol "broker" service (roughly comparable in scope and intent to D-Bus); and
a handful of example programs.
The Syndicate/rs server running.
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:
Then, choose one of the examples below.
Producer/Consumer (sending messages)
In a second window, run a "consumer" process:
Finally, in a third window, run a "producer" process:
State producer/consumer (state replication)
state-consumer, respectively, in the instructions of the previous
subsection to demonstrate Syndicate state replication.
Pingpong example (latency)
In a second window, run
and in a third window, run
The order is important - the difference between
about who kicks off the pingpong session.
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.