profserve

Crates.ioprofserve
lib.rsprofserve
version0.1.0
created_at2025-05-02 14:11:01.865299+00
updated_at2025-05-02 14:11:01.865299+00
descriptionHTTP-Enabled Profiling for Rust
homepage
repositoryhttps://github.com/dat58/profserve
max_upload_size
id1657741
size21,001
(dat58)

documentation

README

ProfServe - HTTP-Enabled Profiling for Rust

Documentation Crates.io License Download

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.

Features

  • 🚀 HTTP API for remote profiling
  • 🔥 Flamegraph generation in SVG format
  • 🔒 Async-ready for modern Rust applications

Quick Start

Installation

Add to your Cargo.toml:

[dependencies]
profserve = "0.1"

Basic Usage

fn main() {
    std::thread::spawn(|| profserve::http::serve(8080).expect("Failed to start profserve"));
    // your code goes here
}

Making Requests

Get a 10-second profile as flamegraph:

curl -s "http://localhost:8080/prof/cpu?seconds=10&frequency=100&output=flamegraph" > profile.svg

Get raw text pprof data:

curl -s "http://localhost:8080/prof/cpu?seconds=10&output=text" > profile.txt

API Endpoints

Endpoint Method Parameters Description
/prof/cpu GET seconds, output, frequency Capture profile
Commit count: 8

cargo fmt