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