# WindSend
**Repository Path**: harrydeep/WindSend
## Basic Information
- **Project Name**: WindSend
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: build_v1.2.4
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-10-17
- **Last Updated**: 2024-10-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 风传 WindSend
中文 | [English](README-EN.md)
## 风传是什么
一组应用程序,用于在不同设备之间快速安全的传递剪切板,传输文件或文件夹(支持windows图片与文件剪切板)。
## 为什么选择风传
- 安全 - 所有数据均加密传递(即使是局域网,也有人希望更安全,比如我)
- 简单 - 界面简洁易上手,开源免费无广告,专注于信息传递
- 全面 - 自动与局域网内密钥相同的电脑匹配,切换wifi也不用担心,同时还提供了不在同一局域网内的解决方案
- 省心 - 不用再担心与电脑的连接状态,只要电脑在线手机就能发送
- 快速 - 使用多线程异步传输文件,充分利用带宽。
- 轻量 - 不依赖额外的运行环境,空闲时内存占用不到10M,基本无CPU消耗

## 如何使用
> **注意**:配置阶段需要确保电脑和手机处于同一网络中。
### 下载
github:[Releases · WindSend](https://github.com/doraemonkeys/WindSend/releases)
> PC端: 一般可以选择下载 **WindSend-S**-XX-x86_64-XXXXX.zip (提供Rust与Go两种实现)
>
> 移动端:一般可以选择下载 **WindSend-flutter**-arm64-v8a-release.apk
### PC端
1. 解压 **WindSend-S-XX-x86_64-windows.zip** 到任意目录(以Windows为例)。
2. 双击exe文件运行:
请点击允许windows网络防火墙,**注意**勾选公用网络(大胆的勾选,所有内容均已加密)。

可以观察到任务栏系统托盘里出现app的图标,同时生成了默认配置文件到当前目录。

如果你忘记勾选公用网络,请到Windows防火墙手动设置,或者**确保你正在使用专用网络**。

3. 开启快速配对以便让手机能够搜索到(快速配对将在第一次配对成功后自动关闭)。

### 移动端
1. 安装APP。
2. 打开APP,点击右下角的加号配置。
3. 电脑开启快速配对后,手机多点几次搜索,如果幸运的话,你将能看到Secretkey被自动填充。
4. 最后,激动人心的时刻到了,手机随便复制一段文字,打开app点击粘贴,电脑瞬间弹出通知,恭喜你已经成功完成了配置,可以愉快的使用了。
### 自动配对失败?手动添加设备密钥
打开默认配置文件`config.yaml`,复制secretKeyHex,手动填入app配置。
> 大多数情况下,快速配对失败就表示你设备之间的网络无法连通。请使用手机热点,再次尝试。
### 注意事项
- 两个设备之间的时间差不能超过5分钟,否则会导致配对失败。
- Windows上的通知发送依赖于PowerShell,如果你没有看到通知,请检查PowerShell是否在环境变量中。
## 小技巧
- **长按上传手机文件夹**

- **快速复制文件夹**
### 不在同一网络的解决方案
#### 1. 使用内网穿透软件
如果是Tailscale,只需要把电脑ip换成Tailscale分配的IP就行了,其他工具自行测试。
#### 2. 使用别人搭好的服务器
本工具内置了一个,只需要新建配置,ip填web,对你没有看错,就是这三个字母。SecretKey 填电脑配置文件中的密钥。使用此功能需要在电脑上手动点击软件,复制到剪切板。

web传递信息的原理是使用了 https://ko0.com/ 网站。
## Rust实现与Go实现有哪些区别
这两个版本在在功能与外观上几乎没有区别,但某些方面还是有细微差别。
1. Rust版体积相对稍小
2. Rust版在传输速度上比Go版略低
## 跨平台情况
由于作者只有Android与Windows的设备,所以不能保证软件在其他平台的功能是否正常。
服务端代码拥有Go与Rust两种实现,代码中主要的库都是跨平台的,想要提供其他更多平台的支持和优化,只需稍微修改一下源代码,作者能力尚浅,欢迎高手来PR。
### Flutter
| | Windows | macOS | Linux | Android | iOS |
| -------- | ------- | ----- | ----- | ------- | ---- |
| 能否编译 | ✅ | ✅ | ❔ | ✅ | ✅ |
| 正常运行 | ✅ | ❔ | ❔ | ✅ | ❔ |
### Rust
| | Windows | macOS | Linux | Android | iOS |
| -------- | ------- | ----- | ----- | ------- | ---- |
| 能否编译 | ✅ | ✅ | ✅ | ❕ | ❕ |
| 正常运行 | ✅ | ❔ | ❔ | ❕ | ❕ |
### Go
| | Windows | macOS | Linux | Android | iOS |
| -------- | ------- | ----- | ----- | ------- | ---- |
| 能否编译 | ✅ | ❌ | ❌ | ❕ | ❕ |
| 正常运行 | ✅ | ❌ | ❌ | ❕ | ❕ |
## 构建指南
### Flutter
Flutter • channel stable
### Rust
#### toolchain
- **windows x86_64**
stable-x86_64-pc-windows-msvc
- **windows aarch64**
aarch64-pc-windows-msvc
#### dependencies
[Requirements - AWS Libcrypto for Rust User Guide](https://aws.github.io/aws-lc-rs/requirements/index.html)
[.github/workflows/rust_build.yml](https://github.com/doraemonkeys/WindSend/blob/main/.github/workflows/rust_build.yml)
### Go
version: 1.21+