ddidderr 0fbf589dc5 docs(plan): record peer-auth decisions and evidence
Record the completed protocol-8 implementation, its security and lifecycle
decisions, and the final local acceptance evidence. Mark protocol-7 Call to
Play relay reviews as historical so they cannot be mistaken for current design.

Keep production acceptance honest by recording the unavailable canonical
186-game manifest corpus, real Windows/NTFS confinement and durability proof,
and representative physical-LAN evidence as external release prerequisites.

Test Plan:
- `just fmt` (passed)
- `just test` (passed; 708 workspace tests, including peer 480 and Tauri 56)
- `just clippy` (passed)
- `just frontend-test` (passed; 91/91)
- `just build` (passed; fixture-backed no-bundle build)
- `LANSPREAD_S37_MIN_MIB_PER_S=100 just peer-cli-tests` (passed; S1-S49)
- `git diff --cached --check` (passed)
2026-08-10 14:05:26 +02:00
2026-06-20 20:32:40 +02:00
2026-08-09 16:16:45 +02:00

lanspread

Peer-to-peer game library sharing for LAN parties. Peers discover each other on the local network via mDNS, exchange library metadata over QUIC, and let users browse and download games from each other. Ships as a Tauri desktop app.

Peer identity and protocol status

Each desktop installation creates and reuses one Ed25519 identity in its Tauri app-data directory. Its PeerId is lowercase unpadded RFC 4648 base32 of BLAKE3 over the certificate's complete canonical DER SubjectPublicKeyInfo; certificates and private keys are never distributed from the repository. Outbound QUIC connections authenticate the responder against the exact expected PeerId. Wire protocol 8 (lanspread/8) is the only supported protocol. Peers exchange responder-owned, revisioned snapshots over identity-pinned endpoints; file and streamed-install requests name the catalog's exact ContentId. There are no legacy wire fallbacks or repository-shared identity keys.

Build / install

Install Rust, Deno, and just first, then bootstrap the project:

just setup

That installs the Tauri CLI with cargo install tauri-cli and installs the Deno/npm dependencies from crates/lanspread-tauri-deno-ts.

Run the desktop app in development mode:

just run

Build without bundling:

just build

Create production bundles:

just bundle

Development commands use the checked-in peer-CLI fixture catalog only after its database and manifests pass the catalog checker. Production bundles never use that fixture authority: just bundle validates the production game.db and requires a generated manifest for every catalog game before Tauri packaging can start. This checkout does not include the canonical production package corpus, so maintainers must generate and independently check those manifests beside the production packages before a bundle can succeed.

Important just commands

  • just setup - install the Tauri CLI and frontend dependencies.
  • just run - run the Tauri app in dev mode.
  • just build - build the app without bundling.
  • just bundle - validate the complete production catalog and create bundles.
  • just fmt - format Rust, TOML, and the justfile.
  • just clippy - lint the Rust workspace.
  • just test - run workspace tests.
  • just frontend-test - run frontend tests.
  • just peer-cli-build - build the JSONL peer test harness.
  • just peer-cli-image - build the peer harness Docker image.
  • just peer-cli-run NAME - run one peer harness container.
S
Description
No description provided
Readme
156 MiB
Languages
Rust 54.5%
JavaScript 15%
TypeScript 11.8%
Python 8.5%
CSS 8.2%
Other 1.9%