Linking ipx's 431 MB test binary took Tower, 31 GB with no swap and 4 GB free beside its containers, into page-fault thrashing for 54 minutes: load 160 with the CPU idle and 130 processes blocked. Line tables for our crates and no debug info for dependencies make it 109 MB, built in 2m14s with load at 20 and 6.5 GB left. CLAUDE.md says to watch memory beside the load. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
54 lines
2.6 KiB
TOML
54 lines
2.6 KiB
TOML
[workspace]
|
|
members = ["crates/ipx", "crates/feed", "crates/directory"]
|
|
resolver = "3"
|
|
|
|
# Each service has its own version, in its own Cargo.toml (ipx, ipx-directory) or package.json
|
|
# (the page), released and tagged on its own; see CLAUDE.md.
|
|
[workspace.package]
|
|
edition = "2024"
|
|
|
|
[workspace.dependencies]
|
|
ipx-feed = { path = "crates/feed" }
|
|
ipx-directory = { path = "crates/directory" }
|
|
ammonia = "4.1.4"
|
|
anyhow = "1.0.104"
|
|
argon2 = "0.6.0"
|
|
atom_syndication = "0.12.10"
|
|
axum = "0.8.9"
|
|
flate2 = "1.1.10"
|
|
chrono = { version = "0.4.45", default-features = false, features = ["std", "clock"] }
|
|
clap = { version = "4.6.6", features = ["derive"] }
|
|
futures-util = { version = "0.3.34", default-features = false, features = ["std"] }
|
|
jsonwebtoken = { version = "11.1.0", default-features = false, features = ["aws_lc_rs"] }
|
|
librqbit = { version = "9.0.1", default-features = false, features = ["rust-tls", "http-api-client"] }
|
|
opentelemetry = { version = "0.33", default-features = false, features = ["trace"] }
|
|
opentelemetry-otlp = { version = "0.33", default-features = false, features = ["trace", "http-proto", "reqwest-blocking-client", "gzip-http"] }
|
|
opentelemetry_sdk = { version = "0.33", default-features = false, features = ["trace"] }
|
|
opml = "1.1.6"
|
|
mimalloc = "0.1.52"
|
|
percent-encoding = "2.3.2"
|
|
quick-xml = { version = "0.42.0", features = ["escape-html"] }
|
|
reqwest = { version = "0.13.5", default-features = false, features = ["rustls", "http2", "gzip", "brotli", "zstd", "stream", "json", "charset", "system-proxy"] }
|
|
rss = "2.1.1"
|
|
sea-orm = { version = "2.0.3", default-features = false, features = ["sqlx-sqlite", "sqlx-postgres", "runtime-tokio-rustls", "macros", "with-json", "sqlite-use-returning-for-3_35"] }
|
|
serde = { version = "1.0.229", features = ["derive"] }
|
|
serde_json = "1.0.151"
|
|
sha2 = "0.10.9"
|
|
tokio = { version = "1.53.1", features = ["rt-multi-thread", "macros", "fs", "io-util", "net", "sync", "time", "signal", "process"] }
|
|
toml = "1.1.5"
|
|
tower = { version = "0.5.3", features = ["util"] }
|
|
tower-http = { version = "0.7.1", features = ["fs", "compression-br", "compression-gzip", "compression-zstd", "decompression-gzip"] }
|
|
tracing = "0.1.44"
|
|
tracing-opentelemetry = { version = "0.34", default-features = false }
|
|
tracing-subscriber = { version = "0.3.23", features = ["env-filter", "json"] }
|
|
url = "2.5.8"
|
|
|
|
# Backtraces keep file and line; the full debug info made a 431 MB test binary whose link ran
|
|
# Tower, which has no swap, out of memory and stalled it for most of an hour (2026-10-18).
|
|
[profile.dev]
|
|
debug = "line-tables-only"
|
|
|
|
# Nobody steps through dependencies.
|
|
[profile.dev.package."*"]
|
|
debug = false
|