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 9 This 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 27 Other resources 28 --------------- 29 * How we wrap our own IPC transport in Android: [/src/tracing/ipc](/src/tracing/ipc). 30