Synchronize your clipboard
for building and running, you'll need:
- Linux with X11 (compatibility with wayland not tested)
- rustup (to set up the toolchain, described below)
You need a Rust nightly toolchain for this to work. Use rustup.rs to get Rust, then set your default toolchain:
rustup default nightly
rustup update
Then you should be able to build the project using
cargo build
or, for building a release binary (optimized and without debug options):
cargo build --release
Optionally, use
cargo test
to run unit-tests.
execute
./build/debug/paste-anywhere <local-ip> [<bootstrap-peer>...]
or, for release builds:
./build/release/paste-anywhere <local-ip> [<bootstrap-peer>...]
<local-ip>
should be the ipv4-adress this program runs on.<bootstrap-peer>
is theipv4:port
address of a known running peer, to bootstrap the overlay network. the port is printed out on the commandline output of the program.
The source files are roughly responsible for modules of the project like so:
network.rs
handles low-level networking: Establishing connections, reading, writing, (de)serialization, ...overlay.rs
builds a Gnutella-like overlay on top of that.clock.rs
implements a vector clock.main.rs
is the entry point for the application.