joule-profiler-cli 3.0.0

CLI tool to measure program energy consumption
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "joule-profiler-cli"
version = "3.0.0"
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.0"

[dependencies.joule-profiler-source-amdsmi]
version = "0.1.0"
optional = true

[dependencies.joule-profiler-source-cgroup]
version = "0.1.0"
optional = true

[dependencies.joule-profiler-source-nvml]
version = "1.0.2"
optional = true

[dependencies.joule-profiler-source-perf_event]
version = "1.0.2"
optional = true

[dependencies.joule-profiler-source-procfs]
version = "0.1.0"
optional = true

[dependencies.joule-profiler-source-rapl]
version = "1.0.4"
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