[package]name = "git-protocol"version = "0.26.3"repository = "https://github.com/Byron/gitoxide"license = "MIT/Apache-2.0"description = "A WIP crate of the gitoxide project for implementing git protocols"authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]edition = "2021"include = ["src/**/*", "CHANGELOG.md", "!**/tests/**/*"]rust-version = "1.64" [lib]doctest = false [features] #! ### _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.blocking-client = ["git-transport/blocking-client", "maybe-async/is_sync"]## As above, but provides async implementations instead.async-client = ["git-transport/async-client", "async-trait", "futures-io", "futures-lite"] #! ### Other## Data structures implement `serde::Serialize` and `serde::Deserialize`.serde1 = ["serde", "bstr/serde", "git-transport/serde1", "git-hash/serde1"] [[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]git-features = { version = "^0.26.2", path = "../git-features", features = ["progress"] }git-transport = { version = "^0.25.4", path = "../git-transport" }git-hash = { version = "^0.10.2", path = "../git-hash" }git-credentials = { version = "^0.9.1", path = "../git-credentials" } thiserror = "1.0.32"serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}bstr = { version = "1.0.1", default-features = false, features = ["std", "unicode"] }nom = { version = "7", default-features = false, features = ["std"]}btoi = "0.4.2" # for async-clientasync-trait = { version = "0.1.51", optional = true }futures-io = { version = "0.3.16", optional = true }futures-lite = { version = "1.12.0", 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"] }git-packetline = { path = "../git-packetline" ,version = "^0.14.2" }git-testtools = { path = "../tests/tools" } [package.metadata.docs.rs]features = ["blocking-client", "document-features", "serde1"]rustdoc-args = ["--cfg", "docsrs"]
[package]
name = "git-protocol"
version = "0.26.3"
repository = "https://github.com/Byron/gitoxide"
license = "MIT/Apache-2.0"
description = "A WIP crate of the gitoxide project for implementing git protocols"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
edition = "2021"
include = ["src/**/*", "CHANGELOG.md", "!**/tests/**/*"]
rust-version = "1.64"
[lib]
doctest = false
[features]
#! ### _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.
blocking-client = ["git-transport/blocking-client", "maybe-async/is_sync"]
## As above, but provides async implementations instead.
async-client = ["git-transport/async-client", "async-trait", "futures-io", "futures-lite"]
#! ### Other
## Data structures implement `serde::Serialize` and `serde::Deserialize`.
serde1 = ["serde", "bstr/serde", "git-transport/serde1", "git-hash/serde1"]
[[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]
git-features = { version = "^0.26.2", path = "../git-features", features = ["progress"] }
git-transport = { version = "^0.25.4", path = "../git-transport" }
git-hash = { version = "^0.10.2", path = "../git-hash" }
git-credentials = { version = "^0.9.1", path = "../git-credentials" }
thiserror = "1.0.32"
serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}
bstr = { version = "1.0.1", default-features = false, features = ["std", "unicode"] }
nom = { version = "7", default-features = false, features = ["std"]}
btoi = "0.4.2"
# for async-client
async-trait = { version = "0.1.51", optional = true }
futures-io = { version = "0.3.16", optional = true }
futures-lite = { version = "1.12.0", 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"] }
git-packetline = { path = "../git-packetline" ,version = "^0.14.2" }
git-testtools = { path = "../tests/tools" }
[package.metadata.docs.rs]
features = ["blocking-client", "document-features", "serde1"]
rustdoc-args = ["--cfg", "docsrs"]