// the find
jonhoo/inferno
A Rust port of FlameGraph
Inferno is a Rust reimplementation of Brendan Gregg's FlameGraph Perl scripts, focusing on the stack-collapsing pipeline that converts profiler output into the folded format. It's aimed at developers who profile Rust (or any) code and want the same flamegraph workflow at ~20x the speed, with a proper library API so tools like cargo-flamegraph can embed it directly.
The ~20x speedup over the Perl originals is real and benchmarked with criterion and hyperfine — not a marketing claim. Supporting perf, DTrace, VTune, Xcode Instruments, Visual Studio profiler, GHC prof, and more from one binary is genuinely useful coverage. The library interface is first-class, not an afterthought, which is why cargo-flamegraph can use it without shelling out. Test coverage is extensive: every collapser has golden-output tests against recorded fixtures, so regressions in output format are caught.
The CDDL 1.0 license is a headache — it's not OSI-approved by most interpretations and is GPL-incompatible, inherited from the original FlameGraph. If you're shipping a GPL project, you have a problem. The SVG output is static: no interactivity beyond what the embedded JavaScript already provides in the original Perl tool, so if you want clickable differential views or custom rendering, you're on your own. Windows support is purely incidental — the collapsers target Linux (perf) and macOS (DTrace/sample/xctrace) profilers, so Windows users are limited to VTune and Visual Studio paths. There's no async-profiler collapser built in, which is odd given how common it is for JVM profiling.