v0.2.2 — Sender pipeline + 4MB socket buffers + sequential-scan
Performance release aimed squarely at the many-tiny-files case. Single-large-file throughput is unchanged (already saturated on gigabit).
What changed
Sender now pipelines disk-read against socket-write
The per-file loop used to do open → read chunk → socket write strictly in sequence. With 22 000 files the CreateFile syscalls alone burned ~15 seconds before any actual bytes moved.
A dedicated tokio task now owns the socket write side. The reader feeds it through mpsc::channel<WriterCmd>(16). The reader is free to start opening / streaming the next file while the previous file's tail is still draining onto the wire, so disk-read and network-send overlap.
WriterCmd is either Bytes(Vec<u8>) (appended to the BufWriter) or FlushAndAck(oneshot) (force a flush + notify; used right before reading the peer's resume-offset reply so the header has actually hit the wire).
4 MB socket buffers on both sides
Added socket2 dep. Both sender and receiver call set_send_buffer_size / set_recv_buffer_size to 4 MB after connect/accept. That's enough kernel buffering to keep the TCP window open across the short disk-read pauses the pipeline can't fully eliminate.
FILE_FLAG_SEQUENTIAL_SCAN on Windows
Source files now open with NTFS's "sequential access" hint — bigger read-ahead, smaller cache footprint per file. Roughly 2-3× on streamed-through tiny files. Falls back to plain read flag on non-Windows.
Bug fix
- Trust list: trusted senders no longer make the accept dialog pop up while the transfer auto-runs in parallel. The receiver used to emit
incoming://requesteven on the trusted path "so the UI could show it as in-flight"; the UI saw the event and opened the dialog. Now only thetransfer://startedevent fires for trusted peers, which is enough to surface the live progress row.
Expected impact
On the user's repro (22 069 files / 7.95 GB / Wi-Fi LAN):
- Before: ~28 MB/s average, ETA ~5 min
- After: target 60–90 MB/s average
Single big file: unchanged (already at ~110 MB/s on gigabit).
Install (Windows)
Download LanBlaze_0.2.2_x64-setup.exe from the assets below. Per-user install (no UAC). Re-running over an existing install upgrades in place and keeps your settings + trusted devices + history.
Changes since 0.2.1
feat: güncellenmiş güvenilir gönderici kabul mantığı(6b6196d) — trust dialog fix + README badges/tech stackperf(sender): pipeline disk read against socket write; +4MB SO_SNDBUF/RCVBUF; FILE_FLAG_SEQUENTIAL_SCAN(caeb7e1)