Add WASI SSH CLI and in-process Git SSH transport

This commit is contained in:
2026-11-06 19:42:00 +00:00
parent 608d0c3fc1
commit 99a8e3a8be
29 changed files with 3546 additions and 30 deletions
+12 -3
View File
@@ -1,9 +1,18 @@
# Git for WASI 0.2
This crate adapts the v2 Git plugin's local operations and HTTP transport.
This crate adapts the v2 Git plugin's local operations, HTTP transport, and SSH transport.
It uses gix 0.90 and the patches in [`vendor/PATCHES.md`](vendor/PATCHES.md).
It does not use the plugin SDK, RPC dispatch, the vault, or SSH.
The host supplies credentials through standard `wasi:http`.
It does not use the plugin SDK, RPC dispatch, the vault, or native child processes.
The host supplies HTTP credentials and SSH signatures through standard `wasi:http`.
SSH clone, fetch, and push use the shared [`ssh-client`](../ssh-client/README.md) library in-process.
The remote command runs `git-upload-pack` or `git-receive-pack` over standard WASI sockets.
Remote URLs accept `ssh://user@host[:port]/path` and `user@host:path`.
SCP-style URLs use port 22.
The user can come from the URL or the host identity.
The host key must already match `$HOME/.ssh/known_hosts`.
Use the `ssh` CLI with `-o StrictHostKeyChecking=accept-new` to record a new key.
See [`../ssh/README.md`](../ssh/README.md) for the native sshd fixture and `ssh-test.nu` commands.
## Build