Skip to content

docs(design): SSH transport async I/O evaluation (#1593)#4242

Merged
oferchen merged 1 commit into
masterfrom
docs/ssh-transport-async-io-eval-1593
May 17, 2026
Merged

docs(design): SSH transport async I/O evaluation (#1593)#4242
oferchen merged 1 commit into
masterfrom
docs/ssh-transport-async-io-eval-1593

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • Expand the brief docs/design/async-runtime-ssh-eval.md into a full evaluation under docs/design/ssh-transport-async-io-eval.md for issue CI: remove unsupported windows aarch64 target #1593.
  • Cover the questions prior async-SSH docs left open: tokio runtime flavour (multi-thread vs current-thread), bridge construction (tokio::process stdio vs AsyncFd over raw FD vs russh::ChannelStream), cost in RSS / scheduler footprint / blocking-vs-async learning curve, latency-sensitive read sites inside the SSH protocol (handshake greeting, multiplex headers, message dispatch), quantified workload predictions, and a five-step implementation sequencing with explicit trigger conditions for default promotion.
  • Recommend a hybrid: shared rt-multi-thread runtime in the daemon (composes with rayon via spawn_blocking); per-invocation current_thread runtime in the CLI (negligible RSS overhead, sync engine untouched). Embedded path uses russh::ChannelStream; subprocess path uses tokio::process::Child stdio; AsyncFd raw-FD bridge retained as a documented escape hatch. Defer default promotion until five trigger conditions hold.

Test plan

  • Docs-only change; no code paths affected.
  • cargo fmt --all -- --check passes.
  • Cross-references to sibling docs (async-migration-plan.md, async-ssh-transport.md, async-ssh-pipe-wrapper.md, async-ssh-evaluation.md, tokio-spawn-blocking-rayon.md) verified.
  • Forward reference added to async-runtime-ssh-eval.md so the runtime-survey doc points at this evaluation.

Expand the brief async-runtime-ssh-eval note into a full evaluation
focused on the runtime-shape question left open by prior docs:
multi-thread vs current-thread runtime ownership, AsyncFd vs
tokio::process vs russh::ChannelStream bridge constructions,
latency-sensitive paths inside the SSH protocol, quantified workload
predictions, and a five-step sequencing plan with trigger conditions
for default promotion.
@oferchen oferchen merged commit a6df0dc into master May 17, 2026
8 checks passed
@oferchen oferchen deleted the docs/ssh-transport-async-io-eval-1593 branch May 17, 2026 19:43
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 17, 2026
oferchen added a commit that referenced this pull request May 18, 2026
Expand the brief async-runtime-ssh-eval note into a full evaluation
focused on the runtime-shape question left open by prior docs:
multi-thread vs current-thread runtime ownership, AsyncFd vs
tokio::process vs russh::ChannelStream bridge constructions,
latency-sensitive paths inside the SSH protocol, quantified workload
predictions, and a five-step sequencing plan with trigger conditions
for default promotion.
oferchen added a commit that referenced this pull request May 18, 2026
Expand the brief async-runtime-ssh-eval note into a full evaluation
focused on the runtime-shape question left open by prior docs:
multi-thread vs current-thread runtime ownership, AsyncFd vs
tokio::process vs russh::ChannelStream bridge constructions,
latency-sensitive paths inside the SSH protocol, quantified workload
predictions, and a five-step sequencing plan with trigger conditions
for default promotion.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant