v0.5.2 — single binary
Secure file transfer, zero friction
Self-contained utility for bidirectional file and directory transfers over WebSockets. End-to-end encrypted. No firewall rules. No STUN/TURN.
LOCAL
~/projects/
├── src/
├── data.json
└── ...
E2E ENCRYPTED
X25519 + ChaCha20-Poly1305
REMOTE
gpu-server:8000
├── models/
├── checkpoints/
└── ...
WebSocket transport|Binary frame protocol|Rust + React
CAPABILITIES
Precision engineering for file transfer
SECURITY
End-to-End Encryption
X25519 Diffie-Hellman key exchange with ChaCha20-Poly1305 authenticated encryption. Security baked into the protocol.
SIMPLICITY
Zero Configuration
Works through NATs and firewalls using only outbound HTTP/WebSocket. No STUN/TURN infrastructure required.
FLEXIBILITY
Dual Interface
Two-pane web UI for interactive transfers, plus headless CLI commands for automated pipelines and scripting.
COMPATIBILITY
Built for Restricted Environments
Optimized for cloud GPUs, Kubernetes, and Docker containers where only outbound traffic is permitted.
ARCHITECTURE
Single binary, complete solution
SYSTEM OVERVIEW
Server Layer
axum
tokio
Protocol Layer
WebSocket /ws
Binary Frames
Crypto Layer
X25519 Key Exchange
ChaCha20-Poly1305 AEAD
BINARY FRAME FORMAT
16B
UUID
8B
Offset
Variable
Chunk Data
1
Binary to deploy
0
External dependencies
SUPPORTED ENVIRONMENTS
LinuxmacOSWindowsDockerK8s
CLI REFERENCE
Headless operations for automation
terminal
# Start server with web UI
$ drift serve --port 8000# Connect two machines with synchronized UI
$ drift serve --port 9000 --target 192.168.1.100:8000send
drift send ./data remote:8000Push files or directories to a remote server and exit.
pull
drift pull remote:8000:/models ./Fetch files or directories from a remote server to local.
ls
drift ls remote:8000:/homeList remote directory contents for browsing and scripting.