Cargo.toml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. [package]
  2. name = "sm121"
  3. version = "0.1.0"
  4. edition = "2024"
  5. license = "MIT"
  6. [features]
  7. # Opt-in heap profiler (dhat): builds with a counting global allocator and
  8. # dumps per-callsite retained-heap stats on graceful exit (dhat.json in cwd).
  9. # Use for leak hunting only — never ship it (measured allocation overhead).
  10. # (Mutually exclusive with `mimalloc` — both install a global allocator.)
  11. dhat = ["dep:dhat"]
  12. # mimalloc as the global allocator (the add-on image build uses it): unlike
  13. # musl's default malloc it aggressively returns memory to the OS, which the
  14. # long-running `sm121 web` on the 4 GB Pi needs — musl's never-trimming
  15. # allocator ratchets RSS up with every transient spike (the 2.7 GiB OOMs).
  16. mimalloc = ["dep:mimalloc"]
  17. [dependencies]
  18. clap = { version = "4.6", features = ["derive"] }
  19. tokio = { version = "1", features = ["full"] }
  20. russh = "0.61"
  21. anyhow = "1.0"
  22. serde = { version = "1.0", features = ["derive"] }
  23. serde_json = "1"
  24. toml = "1"
  25. toml_edit = "0.22"
  26. tracing = "0.1"
  27. tracing-subscriber = { version = "0.3", features = ["env-filter"] }
  28. sha2 = "0.11"
  29. md5 = "0.7"
  30. base64 = "0.22"
  31. getrandom = "0.3"
  32. futures = "0.3"
  33. walkdir = "2"
  34. dirs = "6"
  35. notify = "8"
  36. reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
  37. flate2 = "1"
  38. tar = "0.4"
  39. fluent-i18n = "0.1.0"
  40. axum = "0.8"
  41. dhat = { version = "0.3", optional = true }
  42. mimalloc = { version = "0.1", optional = true }