Cargo Features

gix-protocol has no features set by default.

[dependencies]
gix-protocol = { version = "0.47.0", features = ["blocking-client", "async-client", "handshake", "fetch", "serde", "document-features"] }
blocking-client = fetch, handshake

_Mutually exclusive client _

The client portion of the protocol uses gix-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 gix-transport crate.

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

Affects refmap::init

async-client = fetch, handshake

As above, but provides async implementations instead.

Enables async-client of gix-transport and async-trait, futures-io, and futures-lite

async-trait:

for async-client

Affects refmap::init

handshake async-client? blocking-client?

Add implementations for performing a handshake along with the dependencies needed for it.

Enables gix-credentials

Affects types::Context, handshake::Outcome, gix-protocol::AuthenticateFn

fetch async-client? blocking-client?

Add implementations for performing a fetch (for packs) along with the dependencies needed for it.

Enables gix-lock, gix-negotiate, gix-object, gix-refspec, gix-revwalk, and gix-trace

Affects fetch::negotiate, fetch::refmap

serde

Other

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

Enables serde, serde of bstr, gix-hash, gix-shallow, and gix-transport

Features from optional dependencies

document-features implicit feature

Enables document-features

document-features:

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