ProfServe is a Rust crate that provides HTTP endpoints for performance profiling, built on top of pprof-rs. It enables remote profiling capabilities for your Rust applications with flamegraph generation and pprof data export.
- 🚀 HTTP API for remote profiling
- 🔥 Flamegraph generation in SVG format
- 🔒 Async-ready for modern Rust applications
Add to your Cargo.toml:
[dependencies]
profserve = "0.1"fn main() {
std::thread::spawn(|| profserve::http::serve(8080).expect("Failed to start profserve"));
// your code goes here
}Get a 10-second profile as flamegraph:
curl -s "http://localhost:8080/prof/cpu?seconds=10&frequency=100&output=flamegraph" > profile.svgGet raw text pprof data:
curl -s "http://localhost:8080/prof/cpu?seconds=10&output=text" > profile.txt| Endpoint | Method | Parameters | Description |
|---|---|---|---|
/prof/cpu |
GET | seconds, output, frequency |
Capture profile |