[package]
edition = "2021"
name = "hotpath"
version = "0.16.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "One profiler for CPU, time, memory, and async code - quickly find and debug performance bottlenecks."
readme = "README.md"
categories = ["development-tools"]
license = "MIT"
repository = "https://github.com/pawurb/hotpath-rs"
[package.metadata.docs.rs]
features = [
"hotpath",
"hotpath-alloc",
]
[features]
async-channel = [
"dep:tokio",
"tokio/sync",
"tokio/macros",
"tokio/time",
"tokio/rt-multi-thread",
"dep:async-channel",
]
crossbeam = []
default = ["threads"]
dev = ["dep:time"]
futures = [
"dep:tokio",
"tokio/sync",
"tokio/macros",
"tokio/time",
"tokio/rt-multi-thread",
"dep:futures-channel",
]
hotpath = [
"hotpath-macros/hotpath",
"dep:cfg-if",
"dep:crossbeam-channel",
"dep:hdrhistogram",
"dep:prettytable-rs",
"dep:quanta",
"dep:regex",
"dep:serde",
"dep:serde_json",
"dep:tiny_http",
"dep:futures-util",
"dep:pin-project-lite",
"dep:libc",
]
hotpath-alloc = [
"dep:tokio",
"hotpath-meta?/hotpath-alloc",
]
hotpath-alloc-meta = ["hotpath-meta/hotpath-alloc-meta"]
hotpath-cpu = [
"hotpath-macros/hotpath-cpu",
"dep:object",
"dep:rustc-demangle",
"dep:flate2",
"dep:serde",
"dep:serde_json",
]
hotpath-mcp = [
"hotpath",
"dep:rmcp",
"dep:tokio",
"tokio/rt",
"tokio/net",
"dep:axum",
"dep:tokio-util",
"dep:schemars",
]
hotpath-mcp-meta = ["hotpath-meta/hotpath-mcp-meta"]
hotpath-meta = [
"dep:hotpath-meta",
"hotpath-meta/hotpath-meta",
"hotpath-meta/crossbeam",
]
threads = []
tokio = [
"dep:tokio",
"tokio/sync",
"tokio/macros",
"tokio/time",
"tokio/rt-multi-thread",
]
tui = [
"dep:serde",
"dep:serde_json",
"dep:eyre",
"dep:clap",
"dep:prettytable-rs",
"dep:reqwest",
"dep:crossterm",
"dep:ratatui",
"dep:crossbeam-channel",
"dep:tokio",
"tokio/rt",
"crossbeam",
]
utils = [
"dep:serde",
"dep:serde_json",
"dep:eyre",
"dep:clap",
"dep:prettytable-rs",
"dep:ureq",
]
[lib]
name = "hotpath"
path = "src/lib.rs"
[[bin]]
name = "hotpath"
path = "bin/hotpath/main.rs"
required-features = ["tui"]
[[bin]]
name = "hotpath-crashtest"
path = "bin/hotpath-crashtest/main.rs"
required-features = [
"tui",
"hotpath",
"hotpath-alloc",
]
[[bin]]
name = "hotpath-samply"
path = "bin/hotpath-samply/main.rs"
[[bin]]
name = "hotpath-utils"
path = "bin/hotpath-utils/main.rs"
required-features = ["utils"]
[[test]]
name = "channels_asc"
path = "tests/channels_asc.rs"
[[test]]
name = "channels_crossbeam"
path = "tests/channels_crossbeam.rs"
[[test]]
name = "channels_ftc"
path = "tests/channels_ftc.rs"
[[test]]
name = "channels_std"
path = "tests/channels_std.rs"
[[test]]
name = "channels_tokio"
path = "tests/channels_tokio.rs"
[[test]]
name = "debug"
path = "tests/debug.rs"
[[test]]
name = "functions_alloc"
path = "tests/functions_alloc.rs"
[[test]]
name = "functions_cpu"
path = "tests/functions_cpu.rs"
[[test]]
name = "functions_timing"
path = "tests/functions_timing.rs"
[[test]]
name = "futures"
path = "tests/futures.rs"
[[test]]
name = "guards"
path = "tests/guards.rs"
[[test]]
name = "streams"
path = "tests/streams.rs"
[[test]]
name = "threads"
path = "tests/threads.rs"
[[test]]
name = "tokio_runtime"
path = "tests/tokio_runtime.rs"
[dependencies.async-channel]
version = "2"
optional = true
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.cfg-if]
version = "1.0"
optional = true
[dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[dependencies.crossbeam-channel]
version = "0.5"
optional = true
[dependencies.crossterm]
version = "0.29"
optional = true
[dependencies.eyre]
version = "0.6"
optional = true
[dependencies.flate2]
version = "1"
optional = true
[dependencies.futures-channel]
version = "0.3"
features = ["sink"]
optional = true
[dependencies.futures-util]
version = "0.3"
features = ["sink"]
optional = true
[dependencies.hdrhistogram]
version = "7"
optional = true
default-features = false
[dependencies.hotpath-macros]
version = "0.16.0"
[dependencies.hotpath-meta]
version = "0.16.0"
optional = true
[dependencies.libc]
version = "0.2.150"
optional = true
[dependencies.object]
version = "0.36"
features = [
"read",
"std",
]
optional = true
default-features = false
[dependencies.pin-project-lite]
version = "0.2.12"
optional = true
[dependencies.prettytable-rs]
version = "0.10"
optional = true
default-features = false
[dependencies.quanta]
version = "0.12"
optional = true
[dependencies.ratatui]
version = "0.29"
optional = true
[dependencies.regex]
version = "1"
optional = true
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"rustls",
]
optional = true
default-features = false
[dependencies.rmcp]
version = "0.13"
features = [
"server",
"transport-streamable-http-server",
"transport-streamable-http-server-session",
]
optional = true
[dependencies.rustc-demangle]
version = "0.1"
optional = true
[dependencies.schemars]
version = "1"
optional = true
[dependencies.serde]
version = "1.0.130"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.time]
version = "0.3"
features = [
"formatting",
"local-offset",
"macros",
]
optional = true
[dependencies.tiny_http]
version = "0.12"
optional = true
[dependencies.tokio]
version = "1"
features = ["rt"]
optional = true
[dependencies.tokio-util]
version = "0.7"
optional = true
[dependencies.ureq]
version = "3"
features = ["json"]
optional = true
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.ureq]
version = "3"
features = ["json"]
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(tokio_unstable)"]