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