Definition for a "subtransport"
The smart transport knows how to speak the git protocol, but it has no knowledge of how to establish a connection between it and another endpoint, or how to move data back and forth. For this, a subtransport interface is declared, and the smart transport delegates this work to the subtransports.
Three subtransports are provided by libgit2: ssh, git, http(s).
Subtransports can either be RPC = 0 (persistent connection) or RPC = 1 (request/response). The smart transport handles the differences in its own logic. The git subtransport is RPC = 0, while http is RPC = 1.
True if the protocol is stateless; false otherwise. For example, http:// is stateless, but git:// is not.
User-specified parameter passed to the callback