| # Embedding Perfetto in another project |
| |
| *** note |
| **This doc is WIP**, stay tuned |
| <!-- TODO(primiano): write embedder guide doc. --> |
| *** |
| |
| |
| This doc should: |
| - Contain tech details of the Producer(Endpoint), Consumer(Endpoint) and Service |
| interfaces. |
| - Explain how they are supposed to be wired up together, with or without |
| using an IPC transport. |
| - Explain the basic embedder requirements (e.g. [`TaskRunner`](/include/perfetto/base/task_runner.h)) |
| - Point out the relevant GN targets: |
| `//src/tracing`, `//src/tracing:ipc`, `//src/ipc`. |
| - Explain the API surface: |
| - [producer.h](/include/perfetto/tracing/core/producer.h) |
| - [consumer.h](/include/perfetto/tracing/core/consumer.h) |
| - [service.h](/include/perfetto/tracing/core/tracing_service.h) |
| - Explain the ABI surface: |
| - [shared_memory_abi.h](/include/perfetto/tracing/core/shared_memory_abi.h) |
| - IPC's [wire protocol](/protos/perfetto/ipc/wire_protocol.proto) (if used) |
| - The input [config protos](/protos/perfetto/config) |
| - The output [trace protos](/protos/perfetto/trace) |
| |
| Other resources |
| --------------- |
| * How we wrap our own IPC transport in Android: [/src/tracing/ipc](/src/tracing/ipc). |