Devolutions / Devolutions/ironPosh

Transport: out-of-process (NamedPipe / stdio / Hyper-V / Container)

Open
#48 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
10
Forks
2
PR merge metrics
No merged PRs in 30d

Description

## Gap
Beyond WinRM and SSH, native PowerShell supports several out-of-process transports, all sharing one PSGuid-tagged XML packet protocol (Data/DataAck, Command/CommandAck, Close/CloseAck, Signal/SignalAck). We have none. (pypsrp also lacks these; this is native-C#-only territory.)

This is an umbrella/tracking issue — split into sub-issues when picked up. Depends on the transport abstraction from the SSH issue.

## Variants
- **stdio / OutOfProc** — launch a local `pwsh` and speak the packet protocol over its stdin/stdout.
- **NamedPipe** — `Enter-PSHostProcess` style attach to a local PowerShell process via its named pipe.
- **Hyper-V (VMBus socket, AF_HYPERV)** — `PowerShell Direct` into a VM.
- **Container** — Hyper-V socket or named-pipe fallback into a container.

## Required
- Reuse the transport abstraction + out-of-proc packet codec (see SSH issue).
- Implement each transport's connect/spawn + framing.
- Priority order suggestion: stdio/OutOfProc → NamedPipe → Hyper-V → Container.

## References
- Native C# `src/System.Management.Automation/engine/remoting/fanin/OutOfProcTransportManager.cs` (all variants + packet protocol), `RemoteSessionNamedPipe.cs`, `RemoteSessionHyperVSocket.cs`.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the SSH issue's transport abstraction, then read the referenced native C# files: OutOfProcTransportManager.cs, RemoteSessionNamedPipe.cs, and RemoteSessionHyperVSocket.cs. Begin by splitting this umbrella into a transport-specific sub-issue, following the suggested priority order; done means the selected transport has connect or spawn handling and packet framing covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, powershell, rust
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.