There is an ongoing outage on the primary CPAN mirror. It is possible to work around the issue by using MetaCPAN as a mirror.

NAME

Win32::Pipe::PP - Pure Perl replacement for Win32::Pipe using Win32::API

OVERVIEW

This module provides a pure Perl implementation of Win32::Pipe, using Win32::API to bind directly to native Windows system calls. It is designed as a drop-in replacement for the original XS-based module, with API compatibility and improved maintainability.

GOALS

  • Eliminate XS dependency for easier installation and portability

  • Provide full API compatibility with Win32::Pipe

  • Support IPC integration via get_Win32_IPC_HANDLE

  • Enable modular testing and extensibility

DIFFERENCES

  • No XS or compiled components - implemented entirely in Perl

  • Message mode and advanced flags are simplified or stubbed

  • Overlapped I/O is not yet supported

IMPROVEMENTS

  • Read() handles ERROR_MORE_DATA correctly and returns complete data

  • Consistent error reporting via Error()

  • IPC compatibility without inheritance - via get_Win32_IPC_HANDLE

  • Clean separation of pipe handle and metadata for event loops

PROJECT STRUCTURE

This distribution follows CPAN best practices for layout and packaging:

Win32-Pipe-PP/
!
+-- LICENSE                  # MIT license text
+-- Makefile.PL              # Build script using ExtUtils::MakeMaker
+-- Changes                  # Version history and release notes
+-- MANIFEST.SKIP            # Patterns to exclude from MANIFEST
+-- MANIFEST                 # List of files included in the CPAN distribution
+-- .gitignore               # Git exclusion rules for build artifacts, etc.
+-- README.pod               # Project overview, goals, differences
+-- lib/
!   '-- Win32/
!       '-- Pipe/
!           '-- PP.pm        # Main module with full POD
+-- t/                       # Public test suite (runs via "make test")
!   +-- 01_load.t            # Constructor usage
!   +-- 02_api_compat.t      # API compatibility with XS version
!   +-- 03_behavior.t        # Expected behavior under normal conditions
!   +-- 04_error_codes.t     # Error handling and return values
!   +-- 05_read_write.t      # Client server test
!   +-- 06_ipc_support.t     # Compatibility with Win32::IPC::wait_any
+-- .github/
!   '-- workflows/
!       '-- ci.yml           # GitHub Actions workflow for automated testing

AUTHOR

J. Schneider <brickpool@cpan.org>

LICENSE

MIT License - see LICENSE file for full text. However, this library distributes and references code from other open source projects that have their own licenses.

CREDITS

Special thanks go to David Roth for creating Win32::Pipe