Files
soulseek-rs-modded/soulseek-rs/Cargo.toml
T
Michel de Graaf be5dc6c064 fix(peer): serve full browse listings + harden the listener; TUI transfer/UX work
Peer layer:
- Stream peer messages with a partial-write queue instead of write_all, so a
  large SharedFileListResponse over the non-blocking socket is no longer
  truncated (third-party clients like SoulseekQt can now browse our shares).
- Bound the peer-init handshake with a read timeout and handle each accepted
  connection on its own thread, so one stalled peer can't wedge the listener.
- e2e: third-party direct/brokered/large-share browse + stalled-peer coverage.

TUI:
- Uploads share the downloads table columns (real Speed) and the info pane now
  renders details for a selected upload.
- Download progress bar counts only in-progress transfers and hides when idle.
- Always-visible unread badge (private messages + rooms) in the shortcuts bar,
  self-drawn blink so it works under tmux.
- Persist the unread private-message count across restarts.
2026-07-24 21:18:20 +02:00

46 lines
1.4 KiB
TOML

[package]
name = "soulseek-rs"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "Command-line client for Soulseek protocol"
keywords = ["soulseek", "p2p", "client", "file-sharing"]
categories = ["command-line-utilities"]
[[bin]]
name = "soulseek-rs"
path = "src/main.rs"
# Small library target so integration tests can exercise the persistence
# pipeline; the dependency soulseek-rs-lib already owns the `soulseek_rs`
# crate name, hence the distinct one.
[lib]
name = "soulseek_rs_tui"
path = "src/lib.rs"
[lints]
workspace = true
[dependencies]
soulseek-rs-lib = { version = "6.0.0", path = "../soulseek-rs-lib" }
clap = { version = "4.6.2", features = ["derive", "color", "wrap_help", "env"] }
ratatui = "0.30.2"
color-eyre = "0.6.5"
dotenv = "0.15.0"
igd-next = "0.17"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.9"
directories = "6"
# Linux uses the pure-Rust zbus Secret Service backend (async-secret-service
# + async-io + crypto-rust) instead of sync-secret-service, which links the
# system libdbus and breaks builds without libdbus-1-dev.
keyring = { version = "3", features = ["apple-native", "windows-native", "async-secret-service", "async-io", "crypto-rust"] }
chrono = { version = "0.4.45", default-features = false, features = ["clock", "serde"] }
[dev-dependencies]
tempfile = "3"