Scrolled rows cost 31.7ms per frame at 30k results against 13.3ms on develop, because every row segmented its whole filename into grapheme clusters. Walk back from the end for at most one column of cells and forward for at most the offset, so a row costs the column width rather than the filename, and drop unicode-truncate for unicode-width. A tail never starts on a combining mark.
54 lines
1.6 KiB
TOML
54 lines
1.6 KiB
TOML
[package]
|
|
name = "soulseek-rs"
|
|
version.workspace = true
|
|
authors.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
homepage.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 = "14.1.2", path = "../soulseek-rs-lib" }
|
|
|
|
clap = { version = "4.6.2", features = ["derive", "color", "wrap_help", "env"] }
|
|
clap_complete = "4.6.7"
|
|
ratatui = "0.30.2"
|
|
unicode-width = "0.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"] }
|
|
getrandom = "0.4.3"
|
|
|
|
[dev-dependencies]
|
|
schemars = "1.2.1"
|
|
tempfile = "3"
|
|
|
|
[target."cfg(unix)".dependencies]
|
|
libc = "0.2.189"
|