[package] name = "inferno" version = "0.11.21" edition = "2021" authors = ["Jon Gjengset "] rust-version = "1.71.0" readme = "README.md" description = "Rust port of the FlameGraph performance profiling tool suite" repository = "https://github.com/jonhoo/inferno.git" keywords = ["perf", "flamegraph", "profiling"] categories = ["command-line-utilities", "development-tools::profiling", "visualization"] license = "CDDL-1.0" exclude = ["/tests/**", "/flamegraph/**", "/*.perf"] [profile.release] strip = true # To use flamegraph on inferno binaries, comment this line # debug = true # and uncomment this line. [features] default = ["cli", "multithreaded", "nameattr"] cli = ["clap", "env_logger"] multithreaded = ["dashmap", "crossbeam-utils", "crossbeam-channel"] nameattr = ["indexmap"] [dependencies] ahash = "0.8" is-terminal = "0.4.3" crossbeam-utils = { version = "0.8", optional = true } crossbeam-channel = { version = "0.5", optional = true } dashmap = { version = "6.0.1", optional = true } env_logger = { version = "0.11", default-features = false, optional = true } indexmap = { version = "2.0", optional = true } itoa = "1" log = "0.4" num-format = { version = "0.4.3", default-features = false } quick-xml = { version = "0.26", default-features = false } rgb = "0.8.13" str_stack = "0.1" clap = { version = "4.0.1", optional = true, features = ["derive"] } once_cell = "1.12.0" [dev-dependencies] assert_cmd = "2" criterion = "0.5" libflate = "2" maplit = "1.0.1" pretty_assertions = "1" rand = { version = "0.8", features = ["small_rng"] } serde = { version = "1.0.145" } testing_logger = "0.1.1" # for -Zminimal-versions [target.'cfg(any())'.dependencies] # Force criterion to pull in regex 1.6 instead of 1.5 during minimal version CI; # otherwise compilation fails with... # ``` # error[E0433]: failed to resolve: use of undeclared crate or module `syntax` # --> <$HOME>/.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.5.0/src/literal/mod.rs:9:9 # | # 9 | use syntax::hir::literal::Literals; # | ^^^^^^ use of undeclared crate or module `syntax` # ``` # Forcing >= 1.5.1 would be enough to solve this issue, but since regex 1.6.0 # supports our minimum supported rust version of 1.59.0, regex 1.6.x is fine regex = { version = "1.6", default-features = false, optional = true } # rle-decode-fast 1.0.0 no longer builds with newer Rust rle-decode-fast = { version = "1.0.3", default-features = false, optional = true } [lib] name = "inferno" path = "src/lib.rs" [[bin]] name = "inferno-collapse-perf" path = "src/bin/collapse-perf.rs" required-features = ["cli"] [[bin]] name = "inferno-collapse-dtrace" path = "src/bin/collapse-dtrace.rs" required-features = ["cli"] [[bin]] name = "inferno-collapse-sample" path = "src/bin/collapse-sample.rs" required-features = ["cli"] [[bin]] name = "inferno-collapse-vtune" path = "src/bin/collapse-vtune.rs" required-features = ["cli"] [[bin]] name = "inferno-collapse-vsprof" path = "src/bin/collapse-vsprof.rs" required-features = ["cli"] [[bin]] name = "inferno-collapse-ghcprof" path = "src/bin/collapse-ghcprof.rs" required-features = ["cli"] [[bin]] name = "inferno-collapse-guess" path = "src/bin/collapse-guess.rs" required-features = ["cli"] [[bin]] name = "inferno-collapse-recursive" path = "src/bin/collapse-recursive.rs" required-features = ["cli"] [[bin]] name = "inferno-flamegraph" path = "src/bin/flamegraph.rs" required-features = ["cli"] [[bin]] name = "inferno-diff-folded" path = "src/bin/diff-folded.rs" required-features = ["cli"] [[bench]] name = "collapse" harness = false required-features = ["multithreaded"] [[bench]] name = "flamegraph" harness = false required-features = ["multithreaded"]