pyroscope 2.0.0

Pyroscope Profiler Agent for continuous profiling of Rust, Python and Ruby applications.
Documentation
[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 = "2.0.0"
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.66"

[workspace]
members = [
    "pyroscope_ffi/ruby/ext/rbspy",
    "pyroscope_ffi/python/rust",
    "kit/kindasafe",
    "kit/kindasafe_init",
    "kit/sighandler",
    "kit/pyroscope_ingest",
    "kit/pprof_enc",
    "kit/notlibc",
    "kit/python_offsets",
    "kit/python_offsets_types",
    "kit/python_unwind",
    "kit/coredump",
    "kit/sig_ring",
    "kit/pysignalprof",
    "kit/pysignalprof_capi",
]

[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"
jemalloc_pprof = { version = "0.8", features = ["symbolize"]}
tokio = { version = "1", features = ["rt"]}
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"
flate2 = "1.1"
py-spy = { git = "https://github.com/grafana/py-spy", rev = "5f1661d", default-features = false }




[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 }
jemalloc_pprof = { workspace = true, optional = true  }

[dev-dependencies]
assert_matches = { workspace = true }
claims = { workspace = true }
tikv-jemallocator = { version = "0.6", features = ["profiling"] }
env_logger = "0.11"

[[example]]
name = "jemalloc"
required-features = ["backend-jemalloc"]

[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"]
backend-jemalloc = ["dep:jemalloc_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