33 lines
1.4 KiB
Markdown
33 lines
1.4 KiB
Markdown
# 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.
|
|
|
|
## 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-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-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).
|
|
|
|
## Commands (justfile)
|
|
|
|
Never use normal cargo ... commands, use the just ... commands instead.
|
|
|
|
- `just run` — run the GUI in dev mode.
|
|
- `just build` — build the GUI without bundling (also dev mode).
|
|
- `just fmt` — format the workspace.
|
|
- `just clippy` — lint the workspace.
|
|
- `just fix` — auto-apply cargo/clippy fixes, then format.
|
|
- `just clean` — wipe the build cache.
|
|
|
|
## General info
|
|
|
|
See `README.md`.
|