Access remote actors, publish services, subscribe to messages and state updates etc., via the Syndicate network protocol from bash (and perhaps other shells).
Go to file
Tony Garnock-Jones f060740f82 Split lib from example 2021-10-05 19:49:53 +02:00
examples Split lib from example 2021-10-05 19:49:53 +02:00
lib Split lib from example 2021-10-05 19:49:53 +02:00
README.md Split lib from example 2021-10-05 19:49:53 +02:00

README.md

syndicate-sh

This is an implementation of the Syndicate network protocol (based on Preserves) for Bash.

Q. Is this a joke, or is this serious?
A. Yes.

Dependencies

First, it depends on Bash-specific shell features.

Second, you'll need a Syndicate network server ("broker"). The best option at present is the Rust-language server. Unfortunately it relies on a few nightly-only features of Rust, so I use rustup to get a nightly toolchain, and then use that:

# compiling syndicate-server from source needs these things:
apt install libssl-dev pkg-config curl build-essential

# this is the command-line given by https://rustup.rs/:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# follow the instructions
# then log out and in again

# now you can get the nightly toolchain:
rustup toolchain install nightly

# and finally the server:
cargo +nightly install syndicate-server

Third, you'll need the preserves-tool program, which syndicate.sh uses to slice and dice network packets. It's also written in Rust (but doesn't require nightly), so you can get it with:

cargo install preserves-tools

Running the demo

Start the server in one terminal, in the same directory as this README.md file:

syndicate-server -s ./sock

Then, in one or more other terminals, run chat.sh from the same directory:

./examples/chat.sh