v0.1.0 — First public release
LanBlaze is a fast, cloudless file transfer app for devices on the same LAN.
No accounts, no internet, no relay servers.
Highlights
- mDNS peer discovery — devices on the LAN show up automatically.
- 6-digit pairing code — every send is gated on the receiver's code, wrong code is rejected instantly with no user prompt.
- Single-stream pipeline — many small files are sent back-to-back over one TCP connection (no per-file ack), so the 50 000-tiny-files case doesn't collapse to single-digit MB/s.
- blake3 integrity check end-to-end, with atomic
.part→ final rename. - Resume support for files ≥ 8 MiB — kill mid-transfer, restart, it picks up from the byte that hit disk.
- Drag and drop files or folders onto the window.
- Per-transfer destination override in the incoming dialog.
- Path-traversal safe — absolute paths, drive letters and
..are rejected. - Windows 11 Fluent look with Mica background, follows system light/dark theme.
Install (Windows)
- Download
LanBlaze_0.1.0_x64-setup.exefrom the assets below. - Double-click to install (per-user, no UAC).
- On first launch, allow access in the Windows Defender Firewall prompt — check Private networks + Allow access.
The installer is unsigned, so SmartScreen will show "Unknown publisher". Click More info → Run anyway if you want to proceed.
Build from source
git clone https://github.com/ethemdemirkaya/lan-file-transfer
cd lan-file-transfer
npm install
npm run tauri buildRequires Node ≥ 20 and a recent stable Rust toolchain.
Quick start
- First launch prompts for a device name and default destination folder.
- Top right of the main screen shows your 6-digit pairing code — share it with the sender.
- To send: drop files / folders, pick the destination device from the list (or paste an IP), enter the receiver's code, hit Send.
To verify on a single machine, use 127.0.0.1 as the manual IP and your own pairing code.
Protocol
Version 2 wire format (all integers little-endian, one TCP stream per transfer):
```
[u32 hello_len][HELLO JSON]
[u32 ack_len][HELLO_ACK JSON]
repeated per file:
[u16 path_len][path bytes][u64 size][u8 resumable]
if resumable == 1: [u64 offset] ← receiver → sender
[size - offset bytes of file body]
[32 bytes blake3 of the full file]
[u16 0]
```
Files below 8 MiB skip the resume handshake to keep the small-files pipeline at zero extra RTTs.
Known limitations
- Windows only for this release (Linux / macOS not built yet).
- No transport encryption — relies on the LAN being trusted; pairing code prevents accidental misrouting, not eavesdropping. TLS is on the roadmap.
- Installer is unsigned — SmartScreen warning is expected.
