Cargo Features

git-protocol has no features set by default.

[dependencies]
git-protocol = { version = "0.26.4", features = ["blocking-client", "async-client", "serde1", "document-features"] }
blocking-client

_Mutually exclusive client _

The client portion of the protocol uses git-transport to communicate to a server. For it to be available, one of the following features must be selected.

Specifying both causes a compile error, preventing the use of --all-features.

If set, blocking command implementations are available and will use the blocking version of the git-transport crate.

Enables blocking-client of git-transport, is_sync of maybe-async

Affects git-protocol::fetch, git-protocol::handshake, git-protocol::ls_refs, util::indicate_end_of_interaction

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

As above, but provides async implementations instead.

Enables async-client of git-transport

Affects git-protocol::fetch, git-protocol::handshake, git-protocol::ls_refs, util::indicate_end_of_interaction

serde1 = serde

Other

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

Enables serde of bstr, serde1 of git-hash and git-transport

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

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

document-features implicit feature

Enables document-features

document-features:

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