| .. _module-pw_channel: |
| |
| ========== |
| pw_channel |
| ========== |
| .. pigweed-module:: |
| :name: pw_channel |
| |
| ``pw_channel`` provides features that are essential for efficient, |
| high-performance communications. The ``Channel`` API is: |
| |
| - **Flow-control-aware**: Built-in backpressure ensures that data is only |
| requested when consumers are able to buffer and handle it. |
| - **Zero-copy**: Data transfers seamlessly throughout the stack without |
| copying between intermediate buffers or memory pools. |
| - **Composable**: Layers of the communications stack are swappable, allowing |
| more code reuse and configurability. |
| - **Asynchronous**: No need for dedicated threads or nested callbacks. |
| |
| Not sure if ``pw_channel`` is right for you? Check out |
| :ref:`module-pw_channel-design-why` to learn how ``pw_channel`` handles |
| flow control, backpressure, composability, and more. |
| |
| .. grid:: 2 |
| |
| .. grid-item-card:: :octicon:`code-square` Design |
| :link: module-pw_channel-design |
| :link-type: ref |
| :class-item: sales-pitch-cta-secondary |
| |
| How pw_channel handles: |
| |
| * Flow control |
| * Backpressure |
| * Composability |
| * Asynchronous operations |
| |
| And more. |
| |
| .. grid-item-card:: :octicon:`code-square` Reference |
| :link: module-pw_channel-reference |
| :link-type: ref |
| :class-item: sales-pitch-cta-secondary |
| |
| API reference for: |
| |
| * ``Channel`` |
| * ``AnyChannel`` |
| * ``ByteChannel`` |
| * ``DatagramChannel`` |
| |
| And more. |
| |
| .. toctree:: |
| :hidden: |
| |
| design |
| reference |