- src/pake: trimmed fork of schollz/pake/v3, P256-only (stdlib
crypto/elliptic), dropping the tscholl2/siec and filippo.io/edwards25519
transitive deps along with it.
- src/logger: minimal in-repo replacement for schollz/logger with the
same leveled-logging call surface.
- src/cli: replaced schollz/cli (urfave/cli fork) with a small
flag-package-based parser for the send/relay/receive commands actually
in use; subcommand keyword can appear before or after its flags.
- Dropped schollz/progressbar entirely (its show-progress code paths were
already unreachable dead code since no CLI flag wired them up).
go.mod/go.sum no longer reference any schollz/* module.
Peers join a room and the relay just broadcasts membership (id + dialable
address); peers then connect to each other directly, PAKE-handshake per
link using the room codephrase, and exchange 1MB chunks. Resume reuses
croc's zero-block scan to detect already-received chunks, whole-file hash
verifies completion, and every peer keeps reseeding what it has to others
until stopped (--one-time restores exit-on-complete for a quick fetch).
Relay pairs connections by room name and pipes bytes between them,
with no password/PAKE handshake at the relay layer — codephrase-based
encryption is left to the client side of the transfer.