Back to Perfetto

perfetto-sdk

contrib/rust-sdk/perfetto/README.md

58.31.5 KB
Original Source

perfetto-sdk

Safe and ergonomic Rust bindings for the Perfetto tracing framework.

This crate provides the main API for recording trace data from Rust applications. It wraps the Perfetto C API with safe Rust abstractions for tracing sessions, data sources, and track events.

Quick start

rust,no_run
use perfetto_sdk::track_event::*;

perfetto_sdk::track_event_categories! {
    pub mod my_categories {
        ("rendering", "Rendering events", []),
        ("input", "Input events", []),
    }
}
use my_categories as perfetto_te_ns;

perfetto_sdk::track_event_instant!("rendering", "DrawFrame");

Features

  • Track events with categories, names, and typed arguments
  • Data sources for custom trace data
  • Protozero encoding in pure Rust for minimal overhead
  • Tracing sessions for programmatic trace collection

Crate features

FeatureDefaultDescription
vendoredyesStatically links the bundled Perfetto C library
intrinsicsnoEnables branch-prediction hints to reduce trace overhead
CrateDescription
perfetto-sdk-sysLow-level FFI bindings
perfetto-sdk-deriveProc macros for function tracing
perfetto-sdk-protos-gpuGPU event protobuf bindings