QrSync

Travis Crates.io Docs.rs Crates.io License

Utility to copy files over WiFi to/from mobile devices inside a terminal.

When I built QrSync, it was only meant to send files from a terminal to a mobile device, then I found the amazing qrcp and I took some ideas from it and implemented also the possibility to copy file from the mobile device to the computer running QrSync.

Dependencies

QrSync depends on Rocket, which only builds against nightly >= 1.42.

Platform

QrSync has been tested on Linux and MacOSX. If you are interesting in having this running on Windows, please see this issue.

Install

sh ❯❯❯ cargo install qrsync

Operational modes

QrSync can run in two mode, depending on command line options: * Send mode: this mode is selected when a file is passed to the command line. QrSync will generate a QR code on the terminal and start the HTTP server in send mode. Example: sh ❯❯❯ qrsync my_document.pdf INFO qrsync::http > Send mode enabled for file /home/bigo/my_document.pdf INFO qrsync::http > Scan this QR code with a QR code reader app to open the URL http://192.168.1.11:5566/Q2FyZ28udG9tbA * Receive mode: this mode is selected if no file is passed to the command line. QrSync will generate a QR code on the terminal and start the HTTP server in receive mode from the current folder. A specific folder to save received files can be specified with --root-dir command line option. Example: sh ❯❯❯ qrsync INFO qrsync::http > Receive mode enabled inside directory /home/bigo INFO qrsync::http > Scan this QR code with a QR code reader app to open the URL http://192.168.1.11:5566/receive

IPv6 support

QrSync tries to guess which interface to use and which address to bind on the selected interface. In case you want to use IPv6, ensure you have a valid non link-local address and specify --ipv6 command line argument. Remember, the IP address can be always overridden using --ip-address command line argument.

Command line options

```sh USAGE: qrsync [FLAGS] [OPTIONS] [filename]

ARGS: File to be send to the mobile device

FLAGS: -d, --debug Enable QrSync debug -h, --help Prints help information -6, --ipv6 Prefer IPv6 over IPv4 -l, --light-term Draw QR in a terminal with light background -D, --rocket-debug Enable Rocket framework debug -V, --version Prints version information

OPTIONS: -i, --ip-address IP address to bind the HTTP server to. Default to primary interface -p, --port Port to bind the HTTP server to [default: 5566] -r, --root-dir Root directory to store files in receive mode -w, --workers Number of rocket workers [default: 1] ```

Acknowledgement

License

See LICENSE file.