[package] name = "gix-protocol" version = "0.45.2" repository = "https://github.com/Byron/gitoxide" license = "MIT OR Apache-2.0" description = "A crate of the gitoxide project for implementing git protocols" authors = ["Sebastian Thiel "] edition = "2021" include = ["src/**/*", "LICENSE-*", "!**/tests/**/*"] rust-version = "1.65" [lib] doctest = false [features] #! ### _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. blocking-client = ["gix-transport/blocking-client", "maybe-async/is_sync"] ## As above, but provides async implementations instead. async-client = [ "gix-transport/async-client", "async-trait", "futures-io", "futures-lite", ] #! ### Other ## Data structures implement `serde::Serialize` and `serde::Deserialize`. serde = ["dep:serde", "bstr/serde", "gix-transport/serde", "gix-hash/serde"] [[test]] name = "blocking-client-protocol" path = "tests/blocking-protocol.rs" required-features = ["blocking-client"] [[test]] name = "async-client-protocol" path = "tests/async-protocol.rs" required-features = ["async-client"] [dependencies] gix-features = { version = "^0.38.2", path = "../gix-features", features = [ "progress", ] } gix-transport = { version = "^0.42.2", path = "../gix-transport" } gix-hash = { version = "^0.14.2", path = "../gix-hash" } gix-date = { version = "^0.8.7", path = "../gix-date" } gix-credentials = { version = "^0.24.3", path = "../gix-credentials" } gix-utils = { version = "^0.1.12", path = "../gix-utils" } thiserror = "1.0.32" serde = { version = "1.0.114", optional = true, default-features = false, features = [ "derive", ] } bstr = { version = "1.3.0", default-features = false, features = [ "std", "unicode", ] } winnow = { version = "0.6.0", features = ["simd"] } # for async-client async-trait = { version = "0.1.51", optional = true } futures-io = { version = "0.3.16", optional = true } futures-lite = { workspace = true, optional = true } maybe-async = "0.2.6" document-features = { version = "0.2.0", optional = true } [dev-dependencies] async-std = { version = "1.9.0", features = ["attributes"] } gix-packetline = { path = "../gix-packetline", version = "^0.17.4" } gix-testtools = { path = "../tests/tools" } [package.metadata.docs.rs] features = ["blocking-client", "document-features", "serde"]