Access remote actors, publish services, subscribe to messages and state updates etc., via the Syndicate network protocol from bash (and perhaps other shells).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.4 KiB

5 months ago
# syndicate-sh
This is an implementation of the Syndicate network protocol (based on
[Preserves](https://preserves.gitlab.io/)) for Bash.
**Q.** Is this a joke, or is this serious?
**A.** Yes.
## Dependencies
First, it depends on Bash-specific shell features.
5 months ago
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:
5 months ago
5 months ago
# compiling syndicate-server from source needs these things:
apt install libssl-dev pkg-config curl build-essential
5 months ago
# 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
5 months ago
5 months ago
# and finally the server:
cargo +nightly install syndicate-server
5 months ago
5 months ago
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
5 months ago
## Running the demo
Start the server in one terminal, in the same directory as the
`syndicate.sh` file:
syndicate-server -s ./sock
Then, in one or more other terminals, run `syndicate.sh`:
./syndicate.sh