Skip to content

mrd0ll4r/paste-anywhere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

paste-anywhere

Build Status License

Synchronize your clipboard

Dependencies

for building and running, you'll need:

  • Linux with X11 (compatibility with wayland not tested)
  • rustup (to set up the toolchain, described below)

Building

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.

Running

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 the ipv4:port address of a known running peer, to bootstrap the overlay network. the port is printed out on the commandline output of the program.

Exploring the source

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.

Releases

No releases published

Packages

No packages published

Languages