Require catalog game IDs and every remotely described path component to use Unicode NFC before any download transaction begins. This prevents canonically equivalent spellings from bypassing portable alias checks on filesystems that normalize names, while preserving the protocol's exact path spelling. Cover accepted NFC names and both game-ID and nested-component rejection with zero-mutation tree snapshots. Test Plan: - `just clippy` -- passed - `just test` -- passed (242 lanspread-peer tests) - `git diff --cached --check` -- passed
40 lines
1016 B
TOML
40 lines
1016 B
TOML
[package]
|
|
name = "lanspread-peer"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
[dependencies]
|
|
lanspread-db = { path = "../lanspread-db" }
|
|
lanspread-mdns = { path = "../lanspread-mdns" }
|
|
lanspread-proto = { path = "../lanspread-proto" }
|
|
lanspread-utils = { path = "../lanspread-utils" }
|
|
|
|
# external
|
|
bytes = { workspace = true }
|
|
cap-fs-ext = { workspace = true }
|
|
cap-primitives = { workspace = true }
|
|
crc32fast = { workspace = true }
|
|
eyre = { workspace = true }
|
|
futures = { workspace = true }
|
|
gethostname = { workspace = true }
|
|
if-addrs = { workspace = true }
|
|
log = { workspace = true }
|
|
notify = { workspace = true }
|
|
s2n-quic = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
strum = { workspace = true }
|
|
tokio = { workspace = true }
|
|
tokio-util = { workspace = true }
|
|
unicode-normalization = { workspace = true }
|
|
uuid = { workspace = true }
|
|
walkdir = { workspace = true }
|
|
|
|
[lints.clippy]
|
|
pedantic = { level = "warn", priority = -1 }
|
|
todo = "warn"
|
|
unwrap_used = "warn"
|