[package]name = "git-transport"version = "0.16.0"repository = "https://github.com/Byron/gitoxide"license = "MIT/Apache-2.0"description = "A WIP crate of the gitoxide project dedicated to implementing the git transport layer"authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]edition = "2018"include = ["src/**/*", "CHANGELOG.md"][lib]doctest = false[features]default = []#! ### _Mutually Exclusive Client_#! The _client_ portion of transport can be blocking or async. If none is selected, it will be missing entirely.#! Specifying both causes a compile error, preventing the use of `--all-features`.## If set, blocking implementations of the typical git transports become available in `crate::client`blocking-client = ["git-packetline/blocking-io"]## Implies `blocking-client`, and adds support for the http and https transports using the Rust bindings for `libcurl`.http-client-curl = ["curl", "base64", "git-features/io-pipe", "blocking-client"]## If set, an async implementations of the git transports becomes available in `crate::client`.## Suitable for implementing your own transports while using git's way of communication, typically in conjunction with a custom server.## **Note** that the _blocking_ client has a wide range of available transports, with the _async_ version of it supporting only the TCP based `git` transport leaving you## with the responsibility to providing such an implementation of `futures-io::AsyncRead/AsyncWrite` yourself.async-client = ["git-packetline/async-io", "async-trait", "futures-lite", "futures-io", "pin-project-lite"]#! ### Other## Data structures implement `serde::Serialize` and `serde::Deserialize`.serde1 = ["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"]# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]git-features = { version = "^0.20.0", path = "../git-features" }git-url = { version = "^0.4.0", path = "../git-url" }git-packetline = { version = "^0.12.4", path = "../git-packetline" }serde = { version = "1.0.114", optional = true, default-features = false, features = ["std", "derive"]}quick-error = "2.0.0"bstr = { version = "0.2.13", default-features = false, features = ["std"] }# 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 }pin-project-lite = { version = "0.2.6", optional = true }# for http-client-curl# zlib-ng-compat doesn't force zlib-ngcurl = { version = "0.4", optional = true, features = ["static-curl", "static-ssl", "zlib-ng-compat"] }thiserror = "1.0.26"base64 = { version = "0.13.0", optional = true }document-features = { version = "0.2.0", optional = true }[dev-dependencies]git-pack = { path = "../git-pack" }git-hash = { path = "../git-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"]
[package]
name = "git-transport"
version = "0.16.0"
repository = "https://github.com/Byron/gitoxide"
license = "MIT/Apache-2.0"
description = "A WIP crate of the gitoxide project dedicated to implementing the git transport layer"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
edition = "2018"
include = ["src/**/*", "CHANGELOG.md"]
[lib]
doctest = false
[features]
default = []
#! ### _Mutually Exclusive Client_
#! The _client_ portion of transport can be blocking or async. If none is selected, it will be missing entirely.
#! Specifying both causes a compile error, preventing the use of `--all-features`.
## If set, blocking implementations of the typical git transports become available in `crate::client`
blocking-client = ["git-packetline/blocking-io"]
## Implies `blocking-client`, and adds support for the http and https transports using the Rust bindings for `libcurl`.
http-client-curl = ["curl", "base64", "git-features/io-pipe", "blocking-client"]
## If set, an async implementations of the git transports becomes available in `crate::client`.
## Suitable for implementing your own transports while using git's way of communication, typically in conjunction with a custom server.
## **Note** that the _blocking_ client has a wide range of available transports, with the _async_ version of it supporting only the TCP based `git` transport leaving you
## with the responsibility to providing such an implementation of `futures-io::AsyncRead/AsyncWrite` yourself.
async-client = ["git-packetline/async-io", "async-trait", "futures-lite", "futures-io", "pin-project-lite"]
#! ### Other
## Data structures implement `serde::Serialize` and `serde::Deserialize`.
serde1 = ["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"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
git-features = { version = "^0.20.0", path = "../git-features" }
git-url = { version = "^0.4.0", path = "../git-url" }
git-packetline = { version = "^0.12.4", path = "../git-packetline" }
serde = { version = "1.0.114", optional = true, default-features = false, features = ["std", "derive"]}
quick-error = "2.0.0"
bstr = { version = "0.2.13", default-features = false, features = ["std"] }
# 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 }
pin-project-lite = { version = "0.2.6", optional = true }
# for http-client-curl
# zlib-ng-compat doesn't force zlib-ng
curl = { version = "0.4", optional = true, features = ["static-curl", "static-ssl", "zlib-ng-compat"] }
thiserror = "1.0.26"
base64 = { version = "0.13.0", optional = true }
document-features = { version = "0.2.0", optional = true }
[dev-dependencies]
git-pack = { path = "../git-pack" }
git-hash = { path = "../git-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"]