This is an implementation of the Syndicate network protocol (based on Preserves) for Bash.
Q. Is this a joke, or is this serious?
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
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
syndicate-server -s ./sock
Then, in one or more other terminals, run
chat.sh from the same