[package] name = "sm121" version = "0.1.0" edition = "2024" license = "MIT" [features] # Opt-in heap profiler (dhat): builds with a counting global allocator and # dumps per-callsite retained-heap stats on graceful exit (dhat.json in cwd). # Use for leak hunting only — never ship it (measured allocation overhead). # (Mutually exclusive with `mimalloc` — both install a global allocator.) dhat = ["dep:dhat"] # mimalloc as the global allocator (the add-on image build uses it): unlike # musl's default malloc it aggressively returns memory to the OS, which the # long-running `sm121 web` on the 4 GB Pi needs — musl's never-trimming # allocator ratchets RSS up with every transient spike (the 2.7 GiB OOMs). mimalloc = ["dep:mimalloc"] [dependencies] clap = { version = "4.6", features = ["derive"] } tokio = { version = "1", features = ["full"] } russh = "0.61" anyhow = "1.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1" toml = "1" toml_edit = "0.22" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } sha2 = "0.11" md5 = "0.7" base64 = "0.22" getrandom = "0.3" futures = "0.3" walkdir = "2" dirs = "6" notify = "8" reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] } flate2 = "1" tar = "0.4" fluent-i18n = "0.1.0" axum = "0.8" dhat = { version = "0.3", optional = true } mimalloc = { version = "0.1", optional = true }