[package] name = "bottom" version = "0.9.6" authors = ["Clement Tsang "] edition = "2021" repository = "https://github.com/ClementTsang/bottom" keywords = ["cross-platform", "monitoring", "cli", "top", "tui"] license = "MIT" categories = ["command-line-utilities", "visualization"] description = "A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows." documentation = "https://clementtsang.github.io/bottom/stable" readme = "README.md" default-run = "btm" build = "build.rs" exclude = [ ".cargo-husky/", ".github/", "assets/", "desktop/", "docs/", "sample_configs/", "scripts/", ".all-contributorsrc", ".cirrus.yml", ".gitignore", ".markdownlint.json", "CHANGELOG.md", "clippy.toml", "codecov.yml", "CONTRIBUTING.md", "Cross.toml", "rustfmt.toml", ] rust-version = "1.74.0" # The oldest version I've tested that should still build - note this is not an official MSRV! [[bin]] name = "btm" path = "src/bin/main.rs" doc = false [lib] test = true doctest = true doc = true [profile.dev.package."*"] opt-level = 3 # Compile dependencies with optimizations on even in debug mode. [profile.no-opt] inherits = "dev" opt-level = 0 [profile.release] debug = 0 strip = "symbols" lto = true opt-level = 3 codegen-units = 1 [profile.profiling] inherits = "release" debug = true strip = false [features] battery = ["starship-battery"] nvidia = ["nvml-wrapper"] gpu = ["nvidia"] zfs = [] logging = ["fern", "log", "time/local-offset"] deploy = ["battery", "gpu", "zfs"] default = ["deploy"] [dependencies] anyhow = "1.0.82" backtrace = "0.3.71" cfg-if = "1.0.0" clap = { version = "4.5.4", features = ["default", "cargo", "wrap_help"] } concat-string = "1.0.1" crossterm = "0.27.0" ctrlc = { version = "3.4.4", features = ["termination"] } dirs = "5.0.1" fern = { version = "0.6.2", optional = true } hashbrown = "0.14.3" humantime = "2.1.0" indexmap = "2.2.6" indoc = "2.0.5" itertools = "0.12.1" kstring = { version = "2.0.0", features = ["arc"] } log = { version = "0.4.21", optional = true } nvml-wrapper = { version = "0.10.0", optional = true, features = ["legacy-functions"] } regex = "1.10.4" serde = { version = "1.0.197", features = ["derive"] } starship-battery = { version = "0.8.3", optional = true } sysinfo = "=0.30.10" thiserror = "1.0.58" time = { version = "0.3.36", features = ["formatting", "macros"] } toml_edit = { version = "0.22.9", features = ["serde"] } tui = { version = "0.26.1", package = "ratatui" } unicode-segmentation = "1.11.0" unicode-width = "0.1.11" [target.'cfg(unix)'.dependencies] libc = "0.2.153" [target.'cfg(target_os = "linux")'.dependencies] rustix = { version = "0.38.32", features = ["fs", "param", "process"] } [target.'cfg(target_os = "macos")'.dependencies] core-foundation = "0.9.4" mach2 = "0.4.2" [target.'cfg(target_os = "windows")'.dependencies] windows = { version = "0.54.0", features = [ "Win32_Foundation", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Ioctl", "Win32_System_ProcessStatus", "Win32_System_Threading", ] } [target.'cfg(target_os = "freebsd")'.dependencies] serde_json = { version = "1.0.115" } sysctl = { version = "0.5.5" } filedescriptor = "0.8.2" [dev-dependencies] assert_cmd = "2.0.14" cargo-husky = { version = "1.5.0", default-features = false, features = ["user-hooks"] } predicates = "3.1.0" [target.'cfg(all(target_arch = "x86_64", target_os = "linux"))'.dev-dependencies] portable-pty = "0.8.1" [build-dependencies] clap = { version = "4.5.4", features = ["default", "cargo", "wrap_help"] } clap_complete = "4.5.2" clap_complete_nushell = "4.5.1" clap_complete_fig = "4.5.0" clap_mangen = "0.2.20" indoc = "2.0.5" [package.metadata.deb] section = "utility" assets = [ [ "target/release/btm", "usr/bin/", "755", ], [ "LICENSE", "usr/share/doc/btm/", "644", ], [ "manpage/btm.1.gz", "usr/share/man/man1/btm.1.gz", "644", ], [ "completion/btm.bash", "usr/share/bash-completion/completions/btm", "644", ], [ "completion/btm.fish", "usr/share/fish/vendor_completions.d/btm.fish", "644", ], [ "completion/_btm", "usr/share/zsh/vendor-completions/", "644", ], [ "desktop/bottom.desktop", "usr/share/applications/bottom.desktop", "644", ], ] extended-description = """ By default, bottom will look for a config file in ~/.config/bottom/bottom.toml. A config file can be specified \ using `-C`. If a config file does not exist at the specified or default location, a default one will be created \ for the user there. """ [package.metadata.deb.variants.arm64] depends = "libc6:arm64 (>= 2.28)" [package.metadata.deb.variants.armhf] depends = "libc6:armhf (>= 2.28)" [package.metadata.wix] output = "bottom_x86_64_installer.msi" [package.metadata.generate-rpm] assets = [ { source = "target/release/btm", dest = "/usr/bin/", mode = "755" }, { source = "LICENSE", dest = "/usr/share/doc/btm/", mode = "644" }, { source = "manpage/btm.1.gz", dest = "/usr/share/man/man1/btm.1.gz", mode = "644", doc = true }, { source = "completion/btm.bash", dest = "/usr/share/bash-completion/completions/btm", mode = "644" }, { source = "completion/btm.fish", dest = "/usr/share/fish/vendor_completions.d/btm.fish", mode = "644" }, { source = "completion/_btm", dest = "/usr/share/zsh/vendor-completions/", mode = "644" }, { source = "desktop/bottom.desktop", dest = "/usr/share/applications/bottom.desktop", mode = "644" }, ] # Activate whenever we bump the unofficial MSRV to 1.74, I guess? # [lints.rust] # rust_2018_idioms = "deny" # missing_docs = "deny" # unused_extern_crates = "deny" # [lints.rustdoc] # broken_intra_doc_links = "deny" # missing_crate_level_docs = "deny" # [lints.clippy] # todo = "deny" # unimplemented = "deny" # missing_safety_doc = "deny"