Home | History | Annotate | Download | only in docs
      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