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