2 releases
0.1.1 | May 29, 2023 |
---|---|
0.1.0 | May 29, 2023 |
#4 in #transmit
17KB
248 lines
pipepiper
PipePiper (ppr) is a utility written in Rust that is designed to transmit data using UNIX pipes across the internet, particularly when long distance and high latency is involved.
It uses the QUIC protocol thanks to the quinn-rs/quinn crate.
Getting started
There are no binaries available just yet (sorry), so you will need to compile PipePiper yourself.
# Clone the repo
git clone https://github.com/Zorlin/pipepiper.git
# Change directory into the Ferrous Pipe repo
cd pipepiper
# Build and install the software
cargo install --bin ppr --path .
Or install from crates.io
cargo install pipepiper
This will install a binary named ppr
to Cargo's local set of installed
binaries. The same binary can be found in the target/release
folder.
Usage
Once installed, start the receiver:
ppr recv 0.0.0.0 8000 --config config.toml
and then run the sender and pipe some simple text in
echo "Hello world!" | ppr send 127.0.0.1 8000 --config config.toml
Use the help flag (-h or --help
) to see the full set of options.
For config file specification, see the example-config.toml
file.
This tool is intended to be used to speed up ZFS send/receive over intercontinental distances, but can be used for anything you can use a UNIX pipe to achieve!
Dependencies
~15–29MB
~481K SLoC