• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Embedding Perfetto in another project
2
3*** note
4**This doc is WIP**, stay tuned
5<!-- TODO(primiano): write embedder guide doc. -->
6***
7
8
9This doc should:
10- Contain tech details of the Producer(Endpoint), Consumer(Endpoint) and Service
11  interfaces.
12- Explain how they are supposed to be wired up together, with or without
13  using an IPC transport.
14- Explain the basic embedder requirements (e.g. [`TaskRunner`](/include/perfetto/base/task_runner.h))
15- Point out the relevant GN targets:
16  `//src/tracing`, `//src/tracing:ipc`, `//src/ipc`.
17- Explain the API surface:
18  - [producer.h](/include/perfetto/tracing/core/producer.h)
19  - [consumer.h](/include/perfetto/tracing/core/consumer.h)
20  - [service.h](/include/perfetto/tracing/core/tracing_service.h)
21- Explain the ABI surface:
22  - [shared_memory_abi.h](/include/perfetto/tracing/core/shared_memory_abi.h)
23  - IPC's [wire protocol](/src/ipc/wire_protocol.proto) (if used)
24  - The input [config protos](/protos/perfetto/config)
25  - The output [trace protos](/protos/perfetto/trace)
26
27Other resources
28---------------
29* How we wrap our own IPC transport in Android: [/src/tracing/ipc](/src/tracing/ipc).
30