[package]
name = "stackpulse"
version = "0.10.1"
edition = "2021"
rust-version = "1.88"
description = "Linux perf_event stack sampling with native unwinding, symbolization, and compact spooling"
license = "MIT"
repository = "https://github.com/pablogsal/stackpulse"
homepage = "https://pablogsal.com/stackpulse/"
keywords = ["profiler", "linux", "perf", "sampling", "unwind"]
categories = ["development-tools::profiling"]
include = [
"Cargo.lock",
"Cargo.toml",
"CHANGELOG.md",
"LICENSE-MIT",
"README.md",
"benches/**",
"docs/**",
"examples/**",
"src/**",
"tests/**",
]
[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu", "aarch64-unknown-linux-gnu"]
[lints]
workspace = true
[dependencies]
bitflags = "2.4"
framehop = { package = "framehop-stackpulse", path = "crates/framehop-stackpulse", version = "0.16.2", default-features = false, features = ["std"] }
gimli = { version = "0.34", default-features = false, features = ["read"] }
goblin = "0.10"
integer-encoding = { version = "4.1.0", default-features = false }
libc = "0.2"
memchr = "2.7"
memmap2 = "0.9"
mio = { version = "1", features = ["os-ext", "os-poll"] }
nix = { version = "0.31", features = ["fs", "process", "signal"] }
object = { version = "0.40", default-features = false, features = ["std", "read_core", "elf", "compression"] }
perf-event-open = { version = "0.6", features = ["linux-6.0"] }
perf-event-open-sys = "6.0"
rustc-hash = "2.1"
tokio = { version = "1.38", features = ["rt", "io-util", "sync", "time", "net"], optional = true }
tracing = "0.1"
thiserror = "2.0.20"
wholesym = { version = "0.8.1", optional = true }
[features]
default = ["builtin-wholesym"]
bench-support = []
builtin-wholesym = ["dep:tokio", "dep:wholesym"]
debuginfod = ["builtin-wholesym"]
[dev-dependencies]
allocation-counter = "0.8.1"
criterion = { version = "4.7.0", package = "codspeed-criterion-compat" }
flate2 = "1.1"
fxprof-processed-profile = "0.8.1"
serde_json = "1"
[[bench]]
name = "stackpulse_suite"
harness = false
required-features = ["bench-support"]
[[test]]
name = "integration"
required-features = ["builtin-wholesym"]
[[test]]
name = "allocations"
required-features = ["bench-support"]
[workspace]
members = ["crates/framehop-stackpulse"]
resolver = "2"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
cognitive_complexity = "warn"
[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"