{
  "id": 13442292,
  "title": "culpert - rust heap profiling with span awareness and regression tooling",
  "url": "https://urgent.news/2026/10/10/culpert-rust-heap-profiling-with-span-awareness-and-regression-tooling",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-10T14:49:49.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://github.com/rupert648/culpert"
  },
  "original_language": "en",
  "account": "Culpert is an experimental, heap-allocation profiler designed for Rust services and libraries. It attributes allocations to existing spans and offers pprof-compatible profiles, CI-friendly diffs, and integration with tracing tools. Culpert's integration with tracing, Cloudflare Foundations, or its own #[culpert::span_fn] macro allows it to catch allocation regressions before release. The tool uses geometric sampling with Bernstein correction for unbiased allocation estimates while keeping profiling overhead low. Users can choose from three integration methods: culpert-macros as a re-export, the smallest viable setup, or a more comprehensive setup requiring external tracers. Culpert supports existing #[foundations::telemetry::tracing::span_fn] and #[tracing::instrument] annotations, generating pprof-format profiles compatible with existing tool ecosystems like stock pprof, Speedscope, Pyroscope, and Polar Signals. It also provides a CLI with unbiased per-span reports and a diff subcommand for CI/PR workflows, allowing users to compare profiles before and after changes. To suppress small allocations, users can set a minimum threshold with --min-span-bytes, and CI workflows can utilize the culpert-cli's upload and pull subcommands for storing and comparing profiles.",
  "summary": null,
  "key_points": [
    "Culpert is a Rust heap-allocation profiler with span awareness",
    "Offers pprof-compatible profiles, CI diffs, and tracing tool integration",
    "Supports existing telemetry and instrument annotations for unbiased reports"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}