streams

Manage asynchronous I/O streams and network transport protocols in the Pulp framework.

13|1|Updated Apr 6, 2026
One-click install
npx skills add https://github.com/Generous-Corp/pulp --skill streams-generous-corp
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: streams
Source: https://github.com/Generous-Corp/pulp/tree/main/.agents/skills/streams
Command: npx skills add https://github.com/Generous-Corp/pulp --skill streams-generous-corp

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This skill addresses the complexity of managing I/O operations in the Pulp framework, specifically preventing deadlocks, handling backpressure, and ensuring correct asynchronous callback execution.

Core Features & Use Cases

  • I/O Abstraction: Provides a unified interface for files, pipes, TCP, HTTP, and WebSockets.
  • Async Safety: Implements robust patterns for backpressure management and thread-safe callback dispatching.
  • Use Case: Use this skill when implementing a new network transport or integrating a custom data stream to ensure your implementation correctly handles connection lifecycle, data flow, and resource cleanup without blocking the main worker threads.

Quick Start

Use the streams skill to configure an AsyncStream with a custom executor for handling network callbacks safely.

Frequently Asked Questions about streams

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent deadlocks when managing async I/O streams in C++?

Preventing deadlocks in async I/O streams requires strict adherence to the AsyncStream lifecycle and executor dispatch patterns to ensure safe callback execution. The streams skill enforces robust backpressure management and thread-safety invariants to avoid blocking worker threads during network transport operations.

What is the best way to implement a custom network transport protocol in the Pulp framework?

Implementing a custom network transport protocol in Pulp involves using the streams skill to configure an AsyncStream with a custom executor. This unified interface correctly handles connection lifecycle, data flow, and resource cleanup across TCP, HTTP, and WebSockets.

How does backpressure management work for asynchronous data pipelines?

Backpressure management for asynchronous data pipelines works by enforcing directional pipe constraints and thread-safe callback dispatching within the AsyncStream lifecycle. The streams skill ensures reliable cross-platform performance by preventing data flow from overwhelming the receiving end of an I/O stream.

Can I use a single I/O abstraction for files, pipes, and TCP sockets in C++?

Yes, you can use a single I/O abstraction for files, pipes, TCP sockets, HTTP, and WebSockets. The streams skill provides this unified interface to facilitate robust data pipelines and socket communication while maintaining strict thread-safety invariants across different transport protocols.

Why does my inter-process messaging implementation block the main worker threads?

Inter-process messaging blocks main worker threads when async I/O operations are not dispatched correctly to a custom executor. The streams skill addresses this by enforcing executor dispatch patterns and the AsyncStream lifecycle to ensure callbacks execute safely without blocking.

Do I need a custom executor to handle network callbacks safely in Pulp?

Yes, configuring an AsyncStream with a custom executor is required to handle network callbacks safely in Pulp. This approach ensures correct asynchronous callback execution, prevents deadlocks, and maintains thread-safe dispatching during socket communication and data flow operations.