ddidderr 5dd356eca8 fix(stream-install)!: stream archive payloads as raw frames
Streamed installs were sending FileChunk payloads through the shared JSON
Message impl. serde_json serializes bytes as arrays of integers, which
bloats wire traffic and burns CPU on large archives. Replace
StreamInstallFrame encoding with tagged frames: JSON control frames keep
their shape under tag 0, while file chunks carry raw bytes under tag 1.

The stream install metadata now carries unpacked archive size and mandatory
CRC32. The CLI unrar provider validates CRCs up front, runs one
archive-wide unrar p stream, splits stdout by listed file sizes, and
refuses trailing or missing bytes. That avoids solid archive
re-decompression and sidesteps unrar wildcard masks for path arguments.

Receivers now sample existing download progress events for streamed
installs, report staging-relative chunk paths, and retry trusted peers with
a fresh streamed-install transaction after a failed attempt. The current
protocol policy does not preserve compatibility with older stream-install
builds.

Test Plan:
- just fmt
- just test
- just clippy
- git diff --check
- git diff --cached --check

BREAKING CHANGE: StreamInstallFrame now uses tagged frames with raw chunk
payloads and requires current peers on both sides of streamed installs.

Refs: NEXT_STEPS_CLAUDES_REVIEW.md
2026-06-07 21:12:15 +02:00
2026-05-17 07:54:12 +02:00
2026-05-18 16:19:27 +02:00
2026-05-18 16:19:27 +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.

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

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 - create production 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 153 MiB
Languages
Rust 64.6%
TypeScript 12.9%
Python 8.9%
CSS 7.6%
JavaScript 4.9%
Other 1%