lints.workspace = true
[package]
name = "gix-protocol"
version = "0.48.0"
repository = "https://github.com/GitoxideLabs/gitoxide"
license = "MIT OR Apache-2.0"
description = "A crate of the gitoxide project for implementing git protocols"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
edition = "2021"
include = ["src/**/*", "LICENSE-*", "!**/tests/**/*"]
rust-version = "1.70"
[lib]
doctest = false
[features]
blocking-client = [
"gix-transport/blocking-client",
"maybe-async/is_sync",
"handshake",
"fetch"
]
async-client = [
"gix-transport/async-client",
"dep:async-trait",
"dep:futures-io",
"dep:futures-lite",
"handshake",
"fetch"
]
handshake = ["dep:gix-credentials"]
fetch = [
"dep:gix-negotiate",
"dep:gix-object",
"dep:gix-revwalk",
"dep:gix-lock",
"dep:gix-refspec",
"dep:gix-trace",
]
serde = ["dep:serde", "bstr/serde", "gix-transport/serde", "gix-hash/serde", "gix-shallow/serde"]
[[test]]
name = "blocking"
path = "tests/blocking-protocol.rs"
required-features = ["blocking-client"]
[[test]]
name = "async"
path = "tests/async-protocol.rs"
required-features = ["async-client"]
[dependencies]
gix-features = { version = "^0.40.0", path = "../gix-features", features = [
"progress",
] }
gix-transport = { version = "^0.45.0", path = "../gix-transport" }
gix-hash = { version = "^0.16.0", path = "../gix-hash" }
gix-shallow = { version = "^0.2.0", path = "../gix-shallow" }
gix-date = { version = "^0.9.3", path = "../gix-date" }
gix-utils = { version = "^0.1.14", path = "../gix-utils" }
gix-ref = { version = "^0.50.0", path = "../gix-ref" }
gix-trace = { version = "^0.1.12", path = "../gix-trace", optional = true }
gix-negotiate = { version = "^0.18.0", path = "../gix-negotiate", optional = true }
gix-object = { version = "^0.47.0", path = "../gix-object", optional = true }
gix-revwalk = { version = "^0.18.0", path = "../gix-revwalk", optional = true }
gix-credentials = { version = "^0.27.0", path = "../gix-credentials", optional = true }
gix-refspec = { version = "^0.28.0", path = "../gix-refspec", optional = true }
gix-lock = { version = "^16.0.0", path = "../gix-lock", optional = true }
thiserror = "2.0.0"
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", features = ["simd"] }
async-trait = { version = "0.1.51", optional = true }
futures-io = { version = "0.3.16", optional = true }
futures-lite = { version = "2.1.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"] }
gix-packetline = { path = "../gix-packetline", version = "^0.18.3" }
[package.metadata.docs.rs]
features = ["blocking-client", "document-features", "serde"]