[package]
edition = "2024"
name = "joule-profiler-cli"
version = "3.0.1"
authors = [
"Jérémy Woirhaye <jerem.woirhaye@gmail.com>",
"François Gibier <francoisgibier.contact@gmail.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "CLI tool to measure program energy consumption"
readme = "README.md"
keywords = [
"energy",
"profiling",
"rapl",
"nvml",
"cli",
]
license = "MIT"
repository = "https://github.com/joule-profiler/joule-profiler"
resolver = "2"
[features]
_rapl = ["rapl"]
amdsmi = ["dep:joule-profiler-source-amdsmi"]
cgroup = ["dep:joule-profiler-source-cgroup"]
default = [
"rapl-perf",
"rapl-powercap",
"perf_event",
"nvml",
"amdsmi",
"procfs",
"cgroup",
]
nvml = ["dep:joule-profiler-source-nvml"]
perf = ["perf_event"]
perf_event = ["dep:joule-profiler-source-perf_event"]
procfs = ["dep:joule-profiler-source-procfs"]
rapl = ["dep:joule-profiler-source-rapl"]
rapl-perf = [
"_rapl",
"joule-profiler-source-rapl/backend-perf",
]
rapl-powercap = [
"_rapl",
"joule-profiler-source-rapl/backend-powercap",
]
[lib]
name = "joule_profiler_cli"
path = "src/lib.rs"
[[bin]]
name = "joule-profiler"
path = "src/bin/main.rs"
[dependencies.anyhow]
version = "1.0.100"
[dependencies.clap]
version = "4.5.53"
features = ["derive"]
[dependencies.csv]
version = "1.4.0"
[dependencies.env_logger]
version = "0.11.8"
[dependencies.humantime]
version = "2.3.0"
[dependencies.humantime-serde]
version = "1.1.1"
[dependencies.joule-profiler-core]
version = "2.0.1"
[dependencies.joule-profiler-source-amdsmi]
version = "0.1.1"
optional = true
[dependencies.joule-profiler-source-cgroup]
version = "0.1.1"
optional = true
[dependencies.joule-profiler-source-nvml]
version = "1.0.3"
optional = true
[dependencies.joule-profiler-source-perf_event]
version = "1.0.3"
optional = true
[dependencies.joule-profiler-source-procfs]
version = "0.1.1"
optional = true
[dependencies.joule-profiler-source-rapl]
version = "1.0.5"
optional = true
default-features = false
[dependencies.log]
version = "0.4.28"
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.149"
features = ["preserve_order"]
[dependencies.thiserror]
version = "2.0.17"
[dependencies.tokio]
version = "1.52.3"
features = [
"time",
"rt-multi-thread",
"macros",
"sync",
"rt",
]
[dependencies.toml]
version = "1.1.2"
[dev-dependencies.tempfile]
version = "3"
[lints.clippy]
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
struct_field_names = "allow"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "deny"
priority = -1