Cross-platform LAN file, folder, and clipboard sharing with end-to-end encryption.
This repository contains:
crates/mydrop-core— Rust crypto, protocol, discovery, and transfer enginecrates/mydrop-server— Central auth/device registry API (PostgreSQL)Windows/— WinUI 3 client, background agent, clipboard helper
| Tool | Version |
|---|---|
| .NET SDK | 8.0+ |
| Windows App SDK | 1.6+ (via NuGet) |
| Rust | stable |
| Visual Studio Build Tools | C++ workload (required for cargo build) |
| Docker | optional, for PostgreSQL |
| Visual Studio 2022 | WinUI workload recommended |
docker compose up -d
copy .env.example .envcargo run -p mydrop-serverAPI listens on http://localhost:8080.
cd Windows
dotnet restore
dotnet build MyDrop.sln -c Release -p:Platform=x64Set API URL (optional):
$env:MYDROP_API_URL = "http://localhost:8080"Run:
.\MyDrop\bin\x64\Release\net8.0-windows10.0.19041.0\MyDrop.exe
> **Rust backend:** Install [VS Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) with the **Desktop development with C++** workload, then run `cargo build` from the repo root.dotnet run --project .\MyDropAgent\MyDropAgent.csprojInstall as Windows Service (Administrator):
.\scripts\install-agent-service.ps1dotnet run --project .\MyDropClipboardHelper\MyDropClipboardHelper.csprojOr register at logon:
.\scripts\register-clipboard-helper.ps1MyDrop/
├── crates/
│ ├── mydrop-core/ # E2EE, mDNS, chunked transfers
│ └── mydrop-server/ # Auth API
├── database/migrations/ # PostgreSQL schema
├── Windows/
│ ├── MyDrop/ # WinUI 3 application
│ ├── MyDropAgent/ # Windows background service
│ ├── MyDropClipboardHelper/
│ └── MyDrop.Shared/ # IPC + API models
└── scripts/ # Service install helpers
| Method | Path | Description |
|---|---|---|
| POST | /v1/auth/register |
Create account + recovery key |
| POST | /v1/auth/login |
Sign in |
| POST | /v1/auth/recover |
Tier-1 password reset |
| POST | /v1/devices |
Register device keys |
| GET | /v1/devices |
List trusted devices |
| POST | /v1/devices/{id}/revoke |
Revoke device (password required) |
| GET | /v1/devices/revocations |
Revoked device IDs |
- Passwords and recovery keys are hashed with Argon2id on the server.
- LAN payloads use X25519 + ChaCha20-Poly1305 (see
mydrop-core). - Session tokens are stored with DPAPI + Windows Credential Manager on the client.
- Firewall rules for UDP
51820/ TCP51821are created on Private networks.
Implemented in this scaffold:
- Full auth/register/recover/device API
- WinUI login, home, devices, settings UI
- Floating drag-and-drop zone
- Windows App SDK notifications with Accept/Decline
- Agent IPC, transfer simulation, firewall rules
- Clipboard format filtering (text + screenshot heuristic)
Next integration steps:
- Wire
mydrop-coreFFI intoMyDropAgentfor real mDNS + QUIC transfers - Persist transfer checkpoints to encrypted SQLite
- MSIX packaging and Store distribution
MIT