14 个版本
0.3.0 | 2023 年 8 月 6 日 |
---|---|
0.2.3 | 2023 年 7 月 31 日 |
0.2.2 | 2022 年 5 月 12 日 |
0.1.8 | 2021 年 9 月 10 日 |
0.1.6 | 2020 年 5 月 20 日 |
#89 in 多媒体
每月 37 次下载
145KB
554 行
QrSync
终端内使用 WiFi 将文件在移动设备之间复制到/从的实用工具。
当我构建 QrSync 时,它只是用来从终端向移动设备发送文件,然后我发现惊人的 qrcp,并从中获取了一些想法,并实现了从运行 QrSync 的计算机向移动设备复制文件的可能性。
安装
Github Actions 在推送新标签时为各种架构发布 二进制文件
- x84-64 Linux GNU
- x86-64 Darwin
- aarch64 Linux GNU
- armv7 Linux GNU
或者您可以直接从 crates.io 安装最新的标签
❯❯❯ cargo install qrsync
Rust 版本
QrSync 需要 Rust >= 1.60 的稳定版。
支持的平台
QrSync 已在 Linux 和 MacOSX 上进行了测试。
它目前也支持 Windows,但尚未进行测试。在 *nix 上,它使用 pnet 自动发现主接口及其 IP 地址并绑定到它。Pnet 建立在 Windows 上的依赖项相当复杂(更多信息请参见 此处),因此在此平台上,QrSync 将 --ip-address
命令行选项强制为必填,并且根本不构建 pnet
。
操作模式
QrSync 可以在两种模式下运行,具体取决于命令行选项
- 发送模式:当将文件传递到命令行时选择此模式。QrSync 将在终端上生成二维码并启动发送模式的 HTTP 服务器。示例
❯❯❯ 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
- 接收模式: 如果命令行没有传递文件,则选择此模式。QrSync将在终端生成一个二维码,并从当前目录以接收模式启动HTTP服务器。可以使用--root-dir命令行选项指定保存接收文件的特定文件夹。示例
❯❯❯ 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 支持
QrSync会尝试猜测要使用哪个接口以及要绑定到所选接口的地址。如果您想使用IPv6,请确保您有一个有效的非链路本地地址,并指定--ipv6
命令行参数。请记住,可以使用--ip-address
命令行参数始终覆盖IP地址。
命令行选项
USAGE:
qrsync [FLAGS] [OPTIONS] [filename]
ARGS:
<filename> 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
-V, --version Prints version information
OPTIONS:
-i, --ip-address <ip-address> IP address to bind the HTTP server to. Default to primary interface
-p, --port <port> Port to bind the HTTP server to [default: 5566]
-r, --root-dir <root-dir> Root directory to store files in receive mode
致谢
- qrcp:我从这个令人惊叹的项目中汲取了许多灵感,并且“窃取”了基于HTML Bootstrap的大多数UI。
- axum:一个出色的Rust HTTP框架,非常可扩展且易于使用。
- qr2term:基于终端的二维码渲染库。
- clap:哎呀,我在哪里开始讲述我有多么喜欢Clap呢?
许可证
请参阅LICENSE文件。
依赖项
~18–32MB
~493K SLoC