lints.workspace = true
[package]
name = "gix-transport"
version = "0.43.0"
repository = "https://github.com/GitoxideLabs/gitoxide"
license = "MIT OR Apache-2.0"
description = "A crate of the gitoxide project dedicated to implementing the git transport layer"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
edition = "2021"
include = ["src/**/*", "LICENSE-*"]
rust-version = "1.65"
[lib]
doctest = false
[features]
default = []
blocking-client = ["gix-packetline/blocking-io"]
http-client = [
"base64",
"gix-features/io-pipe",
"blocking-client",
"gix-credentials",
]
http-client-curl = ["curl", "http-client"]
http-client-curl-rust-tls = ["http-client-curl", "curl/rustls"]
http-client-reqwest = ["reqwest", "http-client"]
http-client-reqwest-rust-tls = ["http-client-reqwest", "reqwest/rustls-tls"]
http-client-reqwest-rust-tls-trust-dns = [
"http-client-reqwest",
"reqwest/rustls-tls",
"reqwest/trust-dns",
]
http-client-reqwest-native-tls = ["http-client-reqwest", "reqwest/default-tls"]
async-client = [
"gix-packetline/async-io",
"async-trait",
"futures-lite",
"futures-io",
"pin-project-lite",
]
serde = ["dep:serde"]
[[test]]
name = "blocking-transport"
path = "tests/blocking-transport.rs"
required-features = ["blocking-client", "maybe-async/is_sync"]
[[test]]
name = "blocking-transport-http-only"
path = "tests/blocking-transport-http.rs"
required-features = ["http-client-curl", "maybe-async/is_sync"]
[[test]]
name = "async-transport"
path = "tests/async-transport.rs"
required-features = ["async-client"]
[dependencies]
gix-command = { version = "^0.3.10", path = "../gix-command" }
gix-features = { version = "^0.39.0", path = "../gix-features" }
gix-url = { version = "^0.28.0", path = "../gix-url" }
gix-sec = { version = "^0.10.9", path = "../gix-sec" }
gix-packetline = { version = "^0.18.0", path = "../gix-packetline" }
gix-credentials = { version = "^0.25.0", path = "../gix-credentials", optional = true }
gix-quote = { version = "^0.4.13", path = "../gix-quote" }
serde = { version = "1.0.114", optional = true, default-features = false, features = [
"std",
"derive",
] }
bstr = { version = "1.3.0", default-features = false, features = [
"std",
"unicode",
] }
thiserror = "1.0.26"
async-trait = { version = "0.1.51", optional = true }
futures-io = { version = "0.3.16", optional = true }
futures-lite = { version = "2.1.0", optional = true }
pin-project-lite = { version = "0.2.6", optional = true }
base64 = { version = "0.22.1", optional = true }
curl = { version = "0.4", optional = true }
reqwest = { version = "0.12.0", optional = true, default-features = false, features = ["blocking", "charset", "http2", "macos-system-configuration"] }
async-std = { version = "1.12.0", optional = true }
document-features = { version = "0.2.0", optional = true }
[dev-dependencies]
gix-pack = { path = "../gix-pack", default-features = false, features = [
"streaming-input",
] }
gix-hash = { path = "../gix-hash" }
async-std = { version = "1.9.0", features = ["attributes"] }
maybe-async = "0.2.6"
blocking = "1.0.2"
[package.metadata.docs.rs]
features = ["http-client-curl", "document-features", "serde"]