# Perfetto examples

This directory contains examples for integrating Perfetto into your projects.

- Example applications using the [Perfetto SDK](sdk/README.md).
- Example applications using the [Perfetto shared library](shared_lib/README.md).
