# 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 = "2021"
name = "hotpath"
version = "0.21.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "One profiler for CPU, time, memory, SQL, 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/rt-multi-thread",
    "dep:async-channel",
]
async-lock = ["dep:async-lock"]
crossbeam = ["dep:crossbeam-channel"]
default = ["threads"]
demo-sql = [
    "hotpath",
    "sqlx",
    "dep:sqlx",
    "diesel",
    "diesel/sqlite",
    "dep:libsqlite3-sys",
]
dev = ["dep:time"]
diesel = ["dep:diesel"]
flume = [
    "dep:flume",
    "dep:tokio",
    "tokio/rt-multi-thread",
]
futures = [
    "dep:tokio",
    "tokio/sync",
    "tokio/macros",
    "tokio/rt-multi-thread",
    "dep:futures-channel",
]
hotpath = [
    "hotpath-macros/hotpath",
    "dep:arc-swap",
    "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",
]
parking_lot = ["dep:parking_lot"]
sqlx = [
    "dep:tracing",
    "dep:tracing-subscriber",
]
threads = []
tokio = [
    "dep:tokio",
    "tokio/sync",
    "tokio/macros",
    "tokio/rt-multi-thread",
    "tokio/time",
]
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_asc_wrap"
path = "tests/channels_asc_wrap.rs"

[[test]]
name = "channels_crossbeam"
path = "tests/channels_crossbeam.rs"

[[test]]
name = "channels_crossbeam_wrap"
path = "tests/channels_crossbeam_wrap.rs"

[[test]]
name = "channels_flume"
path = "tests/channels_flume.rs"

[[test]]
name = "channels_flume_wrap"
path = "tests/channels_flume_wrap.rs"

[[test]]
name = "channels_ftc"
path = "tests/channels_ftc.rs"

[[test]]
name = "channels_std"
path = "tests/channels_std.rs"

[[test]]
name = "channels_std_wrap"
path = "tests/channels_std_wrap.rs"

[[test]]
name = "channels_tokio"
path = "tests/channels_tokio.rs"

[[test]]
name = "channels_tokio_wrap"
path = "tests/channels_tokio_wrap.rs"

[[test]]
name = "debug"
path = "tests/debug.rs"

[[test]]
name = "diesel"
path = "tests/diesel.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 = "mutex_async_lock"
path = "tests/mutex_async_lock.rs"

[[test]]
name = "mutex_std"
path = "tests/mutex_std.rs"

[[test]]
name = "mutex_tokio"
path = "tests/mutex_tokio.rs"

[[test]]
name = "rw_lock_parking_lot"
path = "tests/rw_lock_parking_lot.rs"

[[test]]
name = "rw_lock_std"
path = "tests/rw_lock_std.rs"

[[test]]
name = "sql"
path = "tests/sql.rs"

[[test]]
name = "streams"
path = "tests/streams.rs"

[[test]]
name = "threads"
path = "tests/threads.rs"

[[test]]
name = "time_sampling"
path = "tests/time_sampling.rs"

[[test]]
name = "tokio_runtime"
path = "tests/tokio_runtime.rs"

[dependencies.arc-swap]
version = "1.7"
optional = true

[dependencies.async-channel]
version = "2"
optional = true

[dependencies.async-lock]
version = "3"
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.diesel]
version = "2.3"
optional = true
default-features = false

[dependencies.eyre]
version = "0.6"
optional = true

[dependencies.flate2]
version = "1"
optional = true

[dependencies.flume]
version = "0.12.0"
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.21.0"

[dependencies.hotpath-meta]
version = "0.21.0"
optional = true

[dependencies.libc]
version = "0.2.172"
optional = true

[dependencies.libsqlite3-sys]
version = "0.30"
features = ["bundled"]
optional = true

[dependencies.object]
version = "0.36"
features = [
    "read",
    "std",
]
optional = true
default-features = false

[dependencies.parking_lot]
version = "0.12"
optional = true

[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.30"
optional = true

[dependencies.regex]
version = "1"
optional = true

[dependencies.reqwest]
version = "0.13"
features = [
    "json",
    "rustls",
]
optional = true
default-features = false

[dependencies.rmcp]
version = "1.4"
features = [
    "server",
    "transport-streamable-http-server",
    "transport-streamable-http-server-session",
]
optional = true

[dependencies.rustc-demangle]
version = "0.1.24"
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.sqlx]
version = "0.9"
features = [
    "sqlite",
    "runtime-tokio",
]
optional = true
default-features = false

[dependencies.time]
version = "0.3"
features = [
    "formatting",
    "local-offset",
    "macros",
]
optional = true

[dependencies.tiny_http]
version = "0.12"
optional = true

[dependencies.tokio]
version = "1.47"
features = ["rt"]
optional = true

[dependencies.tokio-util]
version = "0.7"
optional = true

[dependencies.tracing]
version = "0.1"
optional = true

[dependencies.tracing-subscriber]
version = "0.3"
features = ["registry"]
optional = true
default-features = false

[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)"]
