Cargo Features

git-transport has no features set by default.

[dependencies]
git-transport = { version = "0.25.5", features = ["blocking-client", "http-client", "http-client-curl", "http-client-reqwest", "async-client", "serde1", "async-std", "document-features"] }
blocking-client http-client?

Mutually Exclusive Client

The client portion of transport can be blocking or async. If none is selected, it will be missing entirely. Specifying both causes a compile error, preventing the use of --all-features.

If set, blocking implementations of the typical git transports become available in crate::client

Enables blocking-io of git-packetline

Affects capabilities::recv, client::git, traits::TransportWithoutIO.request

http-client http-client-curl? http-client-reqwest? = base64, blocking-client, git-credentials

Implies blocking-client, and adds support for the http and https transports.

Enables io-pipe of git-features

Affects http::connect_http, blocking_io::http

http-client-curl = curl, http-client

Implies http-client, and adds support for the http and https transports using the Rust bindings for libcurl.

Affects http::curl, http::Impl, http::redirect, http::connect

http-client-reqwest = http-client, reqwest

Implies http-client and adds support for http and https transports using the blocking version of reqwest.

Affects http::reqwest, http::Impl, http::connect

async-client = async-trait, futures-io, futures-lite, pin-project-lite

If set, an async implementations of the git transports becomes available in crate::client. Suitable for implementing your own transports while using git's way of communication, typically in conjunction with a custom server. Note that the blocking client has a wide range of available transports, with the async version of it supporting only the TCP based git transport leaving you with the responsibility to providing such an implementation of futures-io::AsyncRead/AsyncWrite yourself.

Enables async-io of git-packetline

Affects capabilities::recv, client::git, traits::TransportWithoutIO.request

serde1 = serde

Other

Data structures implement serde::Serialize and serde::Deserialize.

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

git-credentials http-client?
serde serde1?
async-trait async-client?

Enables async-trait

for async-client

futures-io async-client?
futures-lite async-client?

Enables futures-lite ^1.12.0

pin-project-lite async-client?
base64 http-client?

Enables base64

for http-client

curl http-client-curl?

Enables curl

for http-client-curl. Additional configuration should be performed on higher levels of the dependency tree.

reqwest http-client-reqwest?

Enables reqwest

for http-client-reqwest

async-std implicit feature

Enables async-std

If used in conjunction with async-client, the connect() method will become available along with supporting the git protocol over TCP, where the TCP stream is created using this crate.

document-features implicit feature

Enables document-features

document-features:

Extract documentation for the feature flags from comments in Cargo.toml