docs: add setup command and refresh README
Add a project-level setup recipe for the initial development bootstrap. The recipe installs the Tauri CLI and resolves the Tauri frontend dependencies from the Deno lockfile so new contributors have one command before running or building the app. Refresh the README to keep it short and focused on what Lanspread is, how to bootstrap it, and the most important just recipes. Test Plan: - just --summary - just --dry-run setup - git diff --check - git diff --cached --check
This commit is contained in:
@@ -1,46 +1,48 @@
|
|||||||
# lanspread
|
# lanspread
|
||||||
|
|
||||||
## Description
|
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.
|
## Build / install
|
||||||
|
|
||||||
- Peers let users browse and download games from each other
|
Install Rust, Deno, and `just` first, then bootstrap the project:
|
||||||
- they discover each other on the local network via mDNS
|
|
||||||
- they exchange library metadata over QUIC
|
|
||||||
|
|
||||||
Ships as a Tauri desktop app.
|
|
||||||
|
|
||||||
## Development
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# install Tauri CLI
|
just setup
|
||||||
cargo install tauri-cli
|
|
||||||
|
|
||||||
# install Deno with a package manager or from https://deno.land/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Build or Run
|
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:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# build
|
|
||||||
just build
|
|
||||||
|
|
||||||
# run
|
|
||||||
just run
|
just run
|
||||||
|
|
||||||
# test
|
|
||||||
just test
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Scripted peer harness
|
Build without bundling:
|
||||||
|
|
||||||
`crates/lanspread-peer-cli` runs the peer runtime without the GUI and speaks
|
|
||||||
JSONL on stdin/stdout. It is intended for automated multi-peer smoke tests.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
just peer-cli-build
|
just build
|
||||||
just peer-cli-image
|
|
||||||
just peer-cli-run alpha
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Create production bundles:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
|
|||||||
@@ -2,6 +2,10 @@ export RUSTFLAGS := "-C target-cpu=native"
|
|||||||
export WEBKIT_DISABLE_COMPOSITING_MODE := "1"
|
export WEBKIT_DISABLE_COMPOSITING_MODE := "1"
|
||||||
export DOCKER_CONFIG := env_var_or_default("DOCKER_CONFIG", ".lanspread-peer-cli/docker-config")
|
export DOCKER_CONFIG := env_var_or_default("DOCKER_CONFIG", ".lanspread-peer-cli/docker-config")
|
||||||
|
|
||||||
|
setup:
|
||||||
|
cargo install tauri-cli
|
||||||
|
cd crates/lanspread-tauri-deno-ts && deno install --frozen=true
|
||||||
|
|
||||||
run:
|
run:
|
||||||
cargo tauri dev --release
|
cargo tauri dev --release
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user