bottom/Cargo.toml

236 lines
6.2 KiB
TOML
Raw Normal View History

2019-09-04 03:27:25 +00:00
[package]
name = "bottom"
2024-08-06 00:28:17 +00:00
version = "0.10.2"
authors = ["Clement Tsang <cjhtsang@uwaterloo.ca>"]
2023-01-18 07:26:30 +00:00
edition = "2021"
repository = "https://github.com/ClementTsang/bottom"
2020-02-22 23:41:13 +00:00
keywords = ["cross-platform", "monitoring", "cli", "top", "tui"]
license = "MIT"
2020-02-19 05:16:40 +00:00
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"
2019-09-17 04:24:36 +00:00
readme = "README.md"
default-run = "btm"
build = "build.rs"
exclude = [
".cargo-husky/",
".github/",
".idea",
".vscode/",
"assets/",
"desktop/",
"docs/",
"flamegraphs/",
"sample_configs/",
"schema/",
2023-04-28 04:00:19 +00:00
"scripts/",
"wix/",
".all-contributorsrc",
".cirrus.yml",
".gitignore",
".markdownlint.json",
"CHANGELOG.md",
"clippy.toml",
"codecov.yml",
"CONTRIBUTING.md",
"Cross.toml",
"rust-toolchain.toml",
"rustfmt.toml",
]
# The oldest version I've tested that should still build - note this is not an official MSRV!
rust-version = "1.74.0"
2019-09-04 03:27:25 +00:00
2019-10-19 20:29:04 +00:00
[[bin]]
name = "btm"
path = "src/main.rs"
test = true
doctest = true
doc = true
[profile.dev.package."*"]
# Compile dependencies with optimizations on even in debug mode.
opt-level = 3
[profile.no-opt]
inherits = "dev"
opt-level = 0
2020-01-04 21:07:35 +00:00
[profile.release]
debug = 0
strip = "symbols"
lto = true
2020-02-17 23:13:13 +00:00
opt-level = 3
codegen-units = 1
2020-01-04 21:07:35 +00:00
[profile.profiling]
inherits = "release"
debug = true
strip = false
[features]
battery = ["starship-battery"]
2022-02-12 21:40:33 +00:00
nvidia = ["nvml-wrapper"]
gpu = ["nvidia"]
2023-03-05 01:10:24 +00:00
zfs = []
2024-01-12 04:39:17 +00:00
deploy = ["battery", "gpu", "zfs"]
default = ["deploy"]
logging = ["fern", "log", "time"]
generate_schema = ["schemars", "serde_json", "strum"]
2019-09-04 03:27:25 +00:00
[dependencies]
anyhow = "1.0.86"
backtrace = "0.3.73"
cfg-if = "1.0.0"
clap = { version = "4.5.13", features = ["default", "cargo", "wrap_help", "derive"] }
refactor: consolidate time graph components This consolidates all the time graph drawing to one main location, as well as some small improvements. This is helpful in that I don't have to reimplement the same thing across three locations if I have to make one change that in theory should affect them all. In particular, the CPU graph, memory graph, and network graph are all now using the same, generic implementation for drawing, which we call (for now) a component. Note this only affects drawing - it accepts some parameters affecting style and labels, as well as data points, and draw similarly to how it used to before. Widget-specific actions, or things affecting widget state, should all be handled by the widget-specific code instead. For example, our current implementation of x-axis autohide is still controlled by the widget, not the component, even if some of the code is shared. Components are, again, only responsible for drawing (at least for now). For that matter, the graph component does not have mutable access to any form of state outside of tui-rs' `Frame`. Note this *might* change in the future, where we might give the component state. Note that while functionally, the graph behaviour for now is basically the same, a few changes were made internally other than the move to components. The big change is that rather than using tui-rs' `Chart` for the underlying drawing, we now use a tweaked custom `TimeChart` tui-rs widget, which also handles all interpolation steps and some extra customization. Personally, I don't like having to deviate from the library's implementation, but this gives us more flexibility and allows greater control. For example, this allows me to move away from the old hacks required to do interpolation (where I had to mutate the existing list to avoid having to reallocate an extra vector just to insert one extra interpolated point). I can also finally allow customizable legends (which will be added in the future).
2022-04-27 06:13:48 +00:00
concat-string = "1.0.1"
crossterm = "0.27.0"
ctrlc = { version = "3.4.4", features = ["termination"] }
2023-05-03 05:23:48 +00:00
dirs = "5.0.1"
hashbrown = "0.14.5"
humantime = "2.1.0"
indexmap = "2.2.6"
indoc = "2.0.5"
itertools = "0.13.0"
nvml-wrapper = { version = "0.10.0", optional = true, features = ["legacy-functions"] }
regex = "1.10.5"
serde = { version = "1.0.204", features = ["derive"] }
starship-battery = { version = "0.9.1", optional = true }
sysinfo = "=0.30.13"
toml_edit = { version = "0.22.17", features = ["serde"] }
tui = { version = "0.27.0", package = "ratatui" }
unicode-ellipsis = "0.2.0"
unicode-segmentation = "1.11.0"
unicode-width = "0.1.13"
2019-09-15 01:22:57 +00:00
# Used for logging.
fern = { version = "0.6.2", optional = true }
log = { version = "0.4.22", optional = true }
time = { version = "0.3.36", features = ["local-offset", "formatting", "macros"], optional = true }
# These are just used for JSON schema generation.
schemars = { version = "0.8.21", optional = true }
serde_json = { version = "1.0.120", optional = true }
strum = { version = "0.26.3", features = ["derive"], optional = true }
[target.'cfg(unix)'.dependencies]
libc = "0.2.155"
[target.'cfg(target_os = "linux")'.dependencies]
rustix = { version = "0.38.34", features = ["fs", "param"] }
[target.'cfg(target_os = "macos")'.dependencies]
core-foundation = "0.9.4"
mach2 = "0.4.2"
[target.'cfg(target_os = "windows")'.dependencies]
windows = { version = "0.58.0", features = [
"Win32_Foundation",
refactor: migrate disk collection code off of heim, remove heim (#1064) Migrates existing heim-based disk data collection code off of it to either sysinfo or vendored code based on heim/sysinfo/other sources. This also allows us to remove heim completely from bottom. --- * refactor: fix some refresh code * remove async from the freebsd code * some file/implementation organization Turns out sysinfo lacks a lot of data I need. I can still use it for the Windows disk usage implementation, but I'm probably going to manually implement macos/linux usage and all io usage stats. * more restructuring * Some other fixes * remove futures * ready for some big changes? * big changes * linux io + reads * use lossy conversion for mount point * add windows refresh * so long heim, and thanks for all the fish * fix filter behaviour, remove string allocation when reading lines * rename unix -> system for more accurate file struct representation * fix freebsd * port generic unix partition code * add bindings and fix errors * finish macOS bindings for I/O * disable conform check, this seems to... make disk I/O work on macOS????? * fix linux * add safety comments * more comments * update changelog * changelog * We're going full 0.9.0 for this * update lock * fix some typing * bleh * some file management * hoist out get_disk_usage * fix some stuff for Windows * typing and remove dead code allow lint * unify typing * fix * fix 2 * macOS fix * Add bindings file for windows * add windows implementation * fix macos
2023-04-10 09:52:46 +00:00
"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.120" }
sysctl = { version = "0.5.5" }
filedescriptor = "0.8.2"
2019-09-15 01:22:57 +00:00
[dev-dependencies]
assert_cmd = "2.0.15"
cargo-husky = { version = "1.5.0", default-features = false, features = ["user-hooks"] }
predicates = "3.1.0"
2020-02-22 23:38:18 +00:00
[target.'cfg(all(target_arch = "x86_64", target_os = "linux"))'.dev-dependencies]
portable-pty = "0.8.1"
[build-dependencies]
clap = { version = "4.5.13", features = ["default", "cargo", "wrap_help", "derive"] }
clap_complete = "4.5.12"
clap_complete_nushell = "4.5.3"
clap_complete_fig = "4.5.2"
clap_mangen = "0.2.23"
indoc = "2.0.5"
2020-02-22 23:38:18 +00:00
[package.metadata.deb]
section = "utility"
2020-02-22 23:38:18 +00:00
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",
],
2020-02-22 23:38:18 +00:00
]
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.
"""
2020-08-24 01:22:31 +00:00
[package.metadata.deb.variants.arm64]
depends = "libc6:arm64 (>= 2.28)"
[package.metadata.deb.variants.armhf]
depends = "libc6:armhf (>= 2.28)"
2020-08-24 01:22:31 +00:00
[package.metadata.wix]
2020-08-24 01:39:53 +00:00
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" },
]
[lints.rust]
rust_2018_idioms = "deny"
# missing_docs = "deny"
[lints.rustdoc]
broken_intra_doc_links = "deny"
missing_crate_level_docs = "deny"
[lints.clippy]
todo = "deny"
unimplemented = "deny"
missing_safety_doc = "deny"