{"id":46523942,"url":"https://github.com/doraemonkeys/windsend","last_synced_at":"2026-03-06T20:02:33.892Z","repository":{"id":176509351,"uuid":"656635522","full_name":"doraemonkeys/WindSend","owner":"doraemonkeys","description":"Quickly and securely sync clipboard, transfer files and directories between devices. 快速安全的同步剪切板，传输文件或文件夹","archived":false,"fork":false,"pushed_at":"2026-03-05T04:26:30.000Z","size":4049,"stargazers_count":578,"open_issues_count":22,"forks_count":27,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-05T09:47:23.950Z","etag":null,"topics":["clipboard","dart","file-transfer","peer-to-peer","rust","tls"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doraemonkeys.png","metadata":{"files":{"readme":"README-EN.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://doraemonkeys.github.io/donate_page"]}},"created_at":"2023-06-21T10:32:32.000Z","updated_at":"2026-03-05T04:26:34.000Z","dependencies_parsed_at":"2023-09-30T08:26:58.615Z","dependency_job_id":"c64c3b02-55d2-4636-8eff-9ba955d79c51","html_url":"https://github.com/doraemonkeys/WindSend","commit_stats":null,"previous_names":["doraemonkeys/clipboard-go","doraemonkeys/windsend"],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/doraemonkeys/WindSend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doraemonkeys%2FWindSend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doraemonkeys%2FWindSend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doraemonkeys%2FWindSend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doraemonkeys%2FWindSend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doraemonkeys","download_url":"https://codeload.github.com/doraemonkeys/WindSend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doraemonkeys%2FWindSend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30195551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clipboard","dart","file-transfer","peer-to-peer","rust","tls"],"created_at":"2026-03-06T20:02:29.860Z","updated_at":"2026-03-06T20:02:33.886Z","avatar_url":"https://github.com/doraemonkeys.png","language":"Dart","funding_links":["https://doraemonkeys.github.io/donate_page"],"categories":[],"sub_categories":[],"readme":"\u003ch3 align=\"center\"\u003e English | \u003ca href='https://github.com/doraemonkeys/WindSend'\u003e简体中文\u003c/a\u003e\u003c/h3\u003e\n\n\n# WindSend\n\n## What is WindSend\n\nA set of applications for quickly and securely transferring clipboards, transferring files or directories between different devices (supports image and file clipboards).\n\n## Why choose WindSend\n\n- **Security** - All data is transmitted encrypted (TLS), even if it is a LAN, some people want to be more secure, such as me\n- **Simple** - The interface is simple and easy to use, open source, free of advertising, and focuses on information transmission\n- **Comprehensive** - Automatically match the computer with the same key in the LAN, and don't worry about switching wifi\n- **Worry-free** - Don't worry about the connection status with the computer anymore, as long as the computer is online, the mobile phone can send\n- **Fast** - Use multi-threaded asynchronous transmission of files to make full use of bandwidth.\n- **Lightweight** - Does not depend on additional runtime environment, memory usage is less than 10M when idle, and basically no CPU consumption\n\n![image-20231014225053389](https://raw.githubusercontent.com/doraemonkeys/picture/master/1/202310142251417.png)\n\n## How to use\n\n\u003e **Note**: During the configuration phase, make sure that the computer and mobile phone are on the same network. You can also use the relay server to configure.\n\n\n\n### Download\n\ngithub：[Releases · WindSend](https://github.com/doraemonkeys/WindSend/releases)\n\n\n\u003e PC: Generally, you can choose to download the **x64 Rust** version (⚠️ Do not download the Flutter version!!!)\n\u003e \n\u003e Mobile: Generally, you can choose to download WindSend-flutter-arm64-v8a-release.apk\n\n\n\n### PC\n\n#### Linux\n\n1. Unzip **WindSend-linux-x64-S-Rust-v\\*.zip** to any directory.\n\n   ```shell\n    sudo apt install libxdo3\n   ```\n   ```shell\n    nohup ./WindSend-S-Rust \u0026\n   ```\n   \u003e If GLIBC version does not match, you can download compatible version or compile it yourself\n\n#### Windows\n\n1. Unzip **WindSend-windows-x64-S-Rust-v\\*.zip** to any directory (Take Windows).\n\n2. Double-click the exe file to run:\n   Please click to allow windows firewall, **Note** check the public network.\n\n   ![image-20240124214446056](https://raw.githubusercontent.com/doraemonkeys/picture/master/1/202401242148675.png)\n\n   You can see the app icon in the taskbar system tray, and the default configuration file is generated in the current directory.\n\n   ![image-20240124202216544](https://raw.githubusercontent.com/doraemonkeys/picture/master/1/202401242022889.png)\n\n   If you forget to check the public network, please manually set it in Windows Firewall, or **make sure you are using a dedicated network**.\n\n   ![image-20240124214658197](https://raw.githubusercontent.com/doraemonkeys/picture/master/1/202401242148554.png)\n\n3. Turn on fast pairing so that the phone can search (fast pairing will automatically turn off after the first successful pairing).\n\n   ![image-20240124214230894](https://raw.githubusercontent.com/doraemonkeys/picture/master/1/202401242148592.png)\n\n### Mobile\n\n1. Install the APP.\n2. Open the app and click the Add button to add a device.\n\n   \u003cimg src=\"https://raw.githubusercontent.com/doraemonkeys/picture/master/1/202401242148381.png\" alt=\"image-20240124214205549\" style=\"zoom:50%;\" /\u003e\n\n3. After the computer turns on the quick pair,tap the phone a few times to search, and if you're lucky, you'll see the Secretkey filled in automatically.\n4. Finally, the exciting moment has arrived. Copy a piece of text on your phone, open the app and click paste, and the computer will pop up a notification instantly. Congratulations, you have successfully completed the configuration and can use it happily.\n\n\n\n### Failed pairing? Manually add the device key\n\nOpen the default configuration file `config.yaml`, copy secretKeyHex, copy the entire content of `tls/ca_cert.pem`, and fill in the app configuration manually.\n\n\u003cimg src=\"https://raw.githubusercontent.com/Doraemonkeys/picture/master/1/202306212049362.png\" alt=\"image-20230621192929505\" style=\"zoom: 67%;\" /\u003e\n\n\u003e In most cases, failure to pair quickly means that the network between your devices is not connected. Please use your phone's hotspot and try again.\n\n\n\n### Note\n\n- Notification delivery on Windows relies on PowerShell, if you don't see notifications, check that PowerShell is in the environment variable.\n- APP's location permission is used to obtain WIFI information. It is strongly recommended to grant precise location permission.\n\n\n## Tips\n\n- **Long press to upload mobile phone folder**\n  \n  ![image-20250406234520332](https://raw.githubusercontent.com/doraemonkeys/picture/master/1/20250406234529173.png)\n\n- **Quickly copy folders**\n\n\u003cimg src=\"https://raw.githubusercontent.com/doraemonkeys/picture/master/1/202401242149133.png\" alt=\"image-20240124205814355\" style=\"zoom: 33%;\" /\u003e\n\n\n## Solution when Devices Are Not on the Same Network\n\n### 1. Use Intranet Tunneling Software\n\nFor example, with Tailscale, you just need to replace the computer's IP with the IP assigned by Tailscale. Please test other tools on your own.\n\n\n\n### 2. Use a Relay Server\n\nWindSend supports setting up your own relay server to handle different network environments. For the setup guide, please refer to [WindSend-Relay](https://github.com/doraemonkeys/WindSend-Relay).\n\n- **Usage:**\n\n  1. Run the relay service and set a connection secret key (optional).\n  2. Enter the relay server address in the device settings.\n  3. Push the relay server configuration to the target device (or modify the configuration file manually).\n     \u003cdiv\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/doraemonkeys/picture/master/1/20250406234536830.png\" alt=\"relay config\" width=\"58%\" /\u003e\n     \u003c/div\u003e\n\n- **If you need to modify the configuration file manually:**\n\n  Open the default configuration file `config.yaml`, add the following configuration, and then restart the application.\n\n  ```yaml\n  # Relay server address\n  relayServerAddress: your_relay_server_address:16779\n  # Connection secret key\n  # if there is one, change null to the key string\n  relaySecretKey: null\n  # Enable relay\n  enableRelay: true\n  ```\n\n\n\n\n\n## Cross-platform situation\n\nSince the author only has Android and Windows devices, it is not guaranteed that the software will function normally on other platforms. Welcome to submit PR or Issue.\n\n\n\n### Flutter\n\n|         | Windows | macOS | Linux | Android | iOS  |\n| ------- | ------- | ----- | ----- | ------- | ---- |\n| Compile | ✅       | ✅     | ✅     | ✅       | ✅    |\n| Run     | ✅       | ❔     | ✅     | ✅       | ❔    |\n\n\n\n### Rust\n\n|         | Windows | macOS | Linux | Android | iOS  |\n| ------- | ------- | ----- | ----- | ------- | ---- |\n| Compile | ✅       | ✅     | ✅     | ❕       | ❕    |\n| Run     | ✅       | ❔     | ✅     | ❕       | ❕    |\n\n\n\n### Go (End of life)\n\n|         | Windows | macOS | Linux | Android | iOS  |\n| ------- | ------- | ----- | ----- | ------- | ---- |\n| Compile | ✅       | ❌     | ❌     | ❕       | ❕    |\n| Run     | ✅       |       |       | ❕       | ❕    |\n\n\n## Build\n\nThe [Release.yml](https://github.com/doraemonkeys/WindSend/blob/main/.github/workflows/Release.yml) file contains the detailed process of automatic build, which can be referred to.\n\nYou can also download the original file of the workflow from [Actions](https://github.com/doraemonkeys/WindSend/actions).\n\n### Flutter\n\n[Flutter](https://flutter-ko.dev/get-started/install)\n\nversion: channel stable\n\n#### Requirements\n\n[Install Rust](https://www.rust-lang.org/tools/install)\n\n#### Build\n\n```shell\ncd flutter/wind_send\n\nflutter build windows --release\nflutter build linux --release\nflutter build macos --release\n```\n\nCreate a key.properties file in the flutter/wind_send/android/app directory, add app signing information and store.jks file path.\n\n```shell\nflutter build apk --split-per-abi --release\n```\n\n### Rust\n\n#### toolchain\n\n- **windows x86_64**\n\n  stable-x86_64-pc-windows-msvc\n\n- **windows aarch64**\n\n  aarch64-pc-windows-msvc\n\n- **Linux x86_64**\n\n  x86_64-unknown-linux-gnu\n\n- **MacOS x86_64**\n\n  x86_64-apple-darwin\n\n- **MacOS aarch64**\n\n  aarch64-apple-darwin\n\n#### Requirements\n\n[AWS Libcrypto for Rust User Guide](https://aws.github.io/aws-lc-rs/requirements/index.html)\n\n\n**Linux**\n\n```shell\nsudo apt install -y libgtk-3-dev libxdo-dev libappindicator3-dev \nsudo apt install -y pkg-config libssl-dev build-essential linux-libc-dev\nsudo apt install -y musl-dev musl-tools\n```\n\n#### Build\n\n```shell\ncd windSend-rs\ncargo build --release\n```\n\n\n## Contributing\n\nContributions are welcome! Please feel free to submit pull requests or open issues on the [GitHub repository](https://github.com/doraemonkeys/WindSend).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoraemonkeys%2Fwindsend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoraemonkeys%2Fwindsend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoraemonkeys%2Fwindsend/lists"}