pprof_hyper_server 0.2.2

A minimal pprof server implementation using hyper without runtime dependency
Documentation
[package]
authors = ["killzoner"]
edition = "2024"
name = "pprof_hyper_server"
resolver = "3"
version = "0.2.2"

description = "A minimal pprof server implementation using hyper without runtime dependency"
documentation = "https://docs.rs/pprof_hyper_server"
keywords = ["pprof", "server", "profiling"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/killzoner/pprof-hyper-server"

[dependencies]
anyhow = { version = "1.0.101", default-features = false }
async-channel = { version = "2.5.0", default-features = false }
async-executor = { version = "1.13.3", default-features = false }
async-io = { version = "2.6.0", default-features = false }
flate2 = { version = "1.1.9", default-features = false, features = [
  "zlib",
], optional = true }
form_urlencoded = { version = "1.2.2", default-features = false, features = [
  "alloc",
] }
http-body-util = { version = "0.1.3", default-features = false }
hyper = { version = "1.8.1", default-features = false, features = [
  "server",
  "http1",
] }
smol-hyper = { version = "0.1.1", default-features = false }

[target.'cfg(not(target_env = "msvc"))'.dependencies]
jemalloc_pprof = { version = "0.8.2", optional = true, features = [
  "symbolize",
] }
pprof = { version = "0.15.0", default-features = false, optional = true, features = [
  "cpp",
  "prost-codec",
] }
tikv-jemallocator = { version = "0.6.1", default-features = false, optional = true, features = [
  "profiling",
  "unprefixed_malloc_on_supported_platforms",
] }

[dev-dependencies]
clap = { version = "4.5.57", default-features = true, features = [
  "derive",
  "env",
] }
tokio = { version = "1.49.0", default-features = false, features = [
  "macros",
  "rt-multi-thread",
  "time",
] }

[target.'cfg(not(target_env = "msvc"))'.dev-dependencies]
tikv-jemalloc-sys = { version = "0.6.1", default-features = false }
tikv-jemallocator = { version = "0.6.1", features = [
  # https://github.com/tikv/jemallocator/blob/master/jemalloc-sys/README.md#features
  # https://github.com/jemalloc/jemalloc/blob/dev/TUNING.md
  "background_threads_runtime_support",
  "background_threads",
  "stats",
  "unprefixed_malloc_on_supported_platforms",
  "profiling",
  # override the system allocator even outside Rust code.
  # https://github.com/tikv/jemallocator/blob/0.6.1/jemalloc-sys/README.md?plain=1#L91.
  "override_allocator_on_supported_platforms",
] }

[features]
default = ["pprof"]
pprof = ["pprof_cpu", "pprof_heap"]
pprof_cpu = ["dep:pprof", "dep:flate2"]
pprof_heap = ["dep:jemalloc_pprof", "dep:tikv-jemallocator"]

[[example]]
name = "server"
required-features = ["pprof"]

[[example]]
name = "heap_profile_diff"
required-features = ["pprof_heap"]