[package]
name = "pyroscope"
description = """
Pyroscope Profiler Agent for continuous profiling of Rust, Python and Ruby applications.
"""
keywords = ["pyroscope", "profiler", "profiling", "pprof"]
authors = ["Abid Omar <contact@omarabid.com>"]
version = "1.0.2"
edition = "2021"
license = "Apache-2.0"
homepage = "https://pyroscope.io/docs/rust"
documentation = "https://docs.rs/pyroscope"
repository = "https://github.com/pyroscope-io/pyroscope-rs"
readme = "README.md"
autobins = false
autoexamples = true
autotests = true
autobenches = true
rust-version = "1.64"
[workspace]
members = [
"pyroscope_ffi/ruby/ext/rbspy",
"pyroscope_ffi/python/rust",
"kit/kindasafe",
]
[workspace.dependencies]
thiserror = "2.0.12"
log = "0.4"
names = { version = "0.14.0", default-features = false }
reqwest = { version = "0.13", features = ["blocking", "query"], default-features = false }
uuid = { version = "1.20.0", features = ["v4"] }
url = "2.2.2"
libflate = "2.1.0"
libc = "^0.2.124"
prost = "0.14"
serde_json = "1.0.115"
pprof = { package = "pprof-pyroscope-fork", version = "0.1500.2", features = ["framehop", "framehop-unwinder"] }
lazy_static = "1.5.0"
assert_matches = "=1.5.0"
claims = "=0.8.0"
pretty_env_logger = "0.5.0"
rbspy = { version = "0.42" }
remoteprocess = "0.5.0"
anyhow = "1.0"
py-spy = { git = "https://github.com/grafana/py-spy", rev = "3b390dc4230207914164e1dd6888eb3e680b1560" }
[dependencies]
thiserror = { workspace = true }
log = { workspace = true }
names = { workspace = true }
reqwest = { workspace = true }
uuid = { workspace = true }
url = { workspace = true }
libflate = { workspace = true }
libc = { workspace = true }
prost = { workspace = true }
serde_json = { workspace = true }
pprof = { workspace = true, optional = true }
lazy_static = { workspace = true }
[dev-dependencies]
assert_matches = { workspace = true }
claims = { workspace = true }
[features]
default = ["rustls-tls"]
rustls-tls = ["reqwest/rustls"]
native-tls = ["reqwest/native-tls"]
native-tls-vendored = ["reqwest/native-tls-vendored"]
rustls-no-provider = ["reqwest/rustls-no-provider"]
backend-pprof-rs = ["dep:pprof"]
[profile.dev]
opt-level=0
debug = true
rpath = false
lto = false
debug-assertions = true
codegen-units = 4
[profile.release]
opt-level=3
debug = false
strip = "symbols"
rpath = false
lto = true
debug-assertions = false
codegen-units = 1
[profile.test]
opt-level = 1
debug = true
rpath = false
lto = false
debug-assertions = true
codegen-units = 4
[profile.bench]
opt-level = 3
debug = false
rpath = false
lto = true
debug-assertions = false
codegen-units = 1