markdown formatting

This commit is contained in:
2026-08-09 16:16:45 +02:00
parent f4a6259cf3
commit 18dd3b7e07
21 changed files with 1630 additions and 893 deletions
+21 -9
View File
@@ -1,21 +1,27 @@
# 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-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.
## Workspace layout
Cargo workspace under `crates/`:
- `lanspread-peer` — core peer: networking, library, downloads, services. Start here for behavior changes. See `crates/lanspread-peer/ARCHITECTURE.md`.
- `lanspread-peer` — core peer: networking, library, downloads, services. Start
here for behavior changes. See `crates/lanspread-peer/ARCHITECTURE.md`.
- `lanspread-proto` — wire protocol types shared across peers.
- `lanspread-mdns` — mDNS-SD discovery wrapper.
- `lanspread-db` — database/schema types (sqlx + sqlite).
- `lanspread-compat` — compatibility/migration glue between db and other crates.
- `lanspread-utils` — small shared helpers.
- `lanspread-peer-cli` — JSONL peer harness for scripted and containerized tests.
- `lanspread-tauri-deno-ts/` — frontend (Vite + Deno + TS in `src/`) and Tauri shell (`src-tauri/`). This is the GUI client.
- `lanspread-peer-cli` — JSONL peer harness for scripted and containerized
tests.
- `lanspread-tauri-deno-ts/` — frontend (Vite + Deno + TS in `src/`) and Tauri
shell (`src-tauri/`). This is the GUI client.
Top-level `Cargo.toml` pins workspace dependency versions; per-crate `Cargo.toml`s set lints (pedantic clippy, `unsafe_code = forbid` on most).
Top-level `Cargo.toml` pins workspace dependency versions; per-crate
`Cargo.toml`s set lints (pedantic clippy, `unsafe_code = forbid` on most).
## Commands (justfile)
@@ -31,16 +37,22 @@ Never use normal cargo ... commands, use the just ... commands instead.
- `just clean` — wipe the build cache.
- `just peer-cli-build` — build the scripted peer harness.
- `just peer-cli-image` — build the peer harness Docker image.
- `just peer-cli-run NAME` — run one named harness container with persistent state under `.lanspread-peer-cli/NAME/`.
- `just peer-cli-run NAME` — run one named harness container with persistent
state under `.lanspread-peer-cli/NAME/`.
## Protocol policy
There is only one wire version — the current one. No legacy peers, no compatibility shims, no fallback paths for older builds. Anyone who wants to interop must run the current build; everyone else is out. Do not add backward-compat code, `#[serde(other)]` escape hatches, or "what if an old peer sends X" defenses.
There is only one wire version — the current one. No legacy peers, no
compatibility shims, no fallback paths for older builds. Anyone who wants to
interop must run the current build; everyone else is out. Do not add
backward-compat code, `#[serde(other)]` escape hatches, or "what if an old peer
sends X" defenses.
## Manual CLI testing (docker container)
Start `just peer-cli-alpha`, `just peer-cli-bravo` and `just peer-cli-charlie` each in its own terminal. You then have 3 peers that you can interact with via stdin/stdout (JSONL).
Use this setup to manually test peer functionality.
Start `just peer-cli-alpha`, `just peer-cli-bravo` and `just peer-cli-charlie`
each in its own terminal. You then have 3 peers that you can interact with via
stdin/stdout (JSONL). Use this setup to manually test peer functionality.
## General info