xref: /aosp_15_r20/external/pigweed/pw_channel/docs.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker.. _module-pw_channel:
2*61c4878aSAndroid Build Coastguard Worker
3*61c4878aSAndroid Build Coastguard Worker==========
4*61c4878aSAndroid Build Coastguard Workerpw_channel
5*61c4878aSAndroid Build Coastguard Worker==========
6*61c4878aSAndroid Build Coastguard Worker.. pigweed-module::
7*61c4878aSAndroid Build Coastguard Worker   :name: pw_channel
8*61c4878aSAndroid Build Coastguard Worker
9*61c4878aSAndroid Build Coastguard Worker   ``pw_channel`` provides features that are essential for efficient,
10*61c4878aSAndroid Build Coastguard Worker   high-performance communications. The ``Channel`` API is:
11*61c4878aSAndroid Build Coastguard Worker
12*61c4878aSAndroid Build Coastguard Worker   - **Flow-control-aware**: Built-in backpressure ensures that data is only
13*61c4878aSAndroid Build Coastguard Worker     requested when consumers are able to buffer and handle it.
14*61c4878aSAndroid Build Coastguard Worker   - **Zero-copy**: Data transfers seamlessly throughout the stack without
15*61c4878aSAndroid Build Coastguard Worker     copying between intermediate buffers or memory pools.
16*61c4878aSAndroid Build Coastguard Worker   - **Composable**: Layers of the communications stack are swappable, allowing
17*61c4878aSAndroid Build Coastguard Worker     more code reuse and configurability.
18*61c4878aSAndroid Build Coastguard Worker   - **Asynchronous**: No need for dedicated threads or nested callbacks.
19*61c4878aSAndroid Build Coastguard Worker
20*61c4878aSAndroid Build Coastguard WorkerNot sure if ``pw_channel`` is right for you? Check out
21*61c4878aSAndroid Build Coastguard Worker:ref:`module-pw_channel-design-why` to learn how ``pw_channel`` handles
22*61c4878aSAndroid Build Coastguard Workerflow control, backpressure, composability, and more.
23*61c4878aSAndroid Build Coastguard Worker
24*61c4878aSAndroid Build Coastguard Worker.. grid:: 2
25*61c4878aSAndroid Build Coastguard Worker
26*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`code-square` Design
27*61c4878aSAndroid Build Coastguard Worker      :link: module-pw_channel-design
28*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
29*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
30*61c4878aSAndroid Build Coastguard Worker
31*61c4878aSAndroid Build Coastguard Worker      How pw_channel handles:
32*61c4878aSAndroid Build Coastguard Worker
33*61c4878aSAndroid Build Coastguard Worker      * Flow control
34*61c4878aSAndroid Build Coastguard Worker      * Backpressure
35*61c4878aSAndroid Build Coastguard Worker      * Composability
36*61c4878aSAndroid Build Coastguard Worker      * Asynchronous operations
37*61c4878aSAndroid Build Coastguard Worker
38*61c4878aSAndroid Build Coastguard Worker      And more.
39*61c4878aSAndroid Build Coastguard Worker
40*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`code-square` Reference
41*61c4878aSAndroid Build Coastguard Worker      :link: module-pw_channel-reference
42*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
43*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
44*61c4878aSAndroid Build Coastguard Worker
45*61c4878aSAndroid Build Coastguard Worker      API reference for:
46*61c4878aSAndroid Build Coastguard Worker
47*61c4878aSAndroid Build Coastguard Worker      * ``Channel``
48*61c4878aSAndroid Build Coastguard Worker      * ``AnyChannel``
49*61c4878aSAndroid Build Coastguard Worker      * ``ByteChannel``
50*61c4878aSAndroid Build Coastguard Worker      * ``DatagramChannel``
51*61c4878aSAndroid Build Coastguard Worker
52*61c4878aSAndroid Build Coastguard Worker      And more.
53*61c4878aSAndroid Build Coastguard Worker
54*61c4878aSAndroid Build Coastguard Worker.. toctree::
55*61c4878aSAndroid Build Coastguard Worker   :hidden:
56*61c4878aSAndroid Build Coastguard Worker
57*61c4878aSAndroid Build Coastguard Worker   guides
58*61c4878aSAndroid Build Coastguard Worker   design
59*61c4878aSAndroid Build Coastguard Worker   reference
60