gix-packetline 0.18.1

A crate of the gitoxide project implementing the pkt-line serialization format
Documentation
lints.workspace = true

[package]
name = "gix-packetline"
version = "0.18.1"
repository = "https://github.com/GitoxideLabs/gitoxide"
license = "MIT OR Apache-2.0"
description = "A crate of the gitoxide project implementing the pkt-line serialization format"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
edition = "2021"
include = ["src/**/*", "LICENSE-*"]
rust-version = "1.65"

[lib]
doctest = false

[features]
#! By default, all IO related capabilities will be missing unless one of the following is chosen.
default = []

#! ### _Mutually exclusive_
#! Specifying both causes a compile error, preventing the use of `--all-features`.

## If set, all IO will become blocking. The same types will be used preventing side-by-side usage of blocking and non-blocking IO.
blocking-io = []
## Implement IO traits from `futures-io`.
async-io = ["futures-io", "futures-lite", "pin-project-lite"]

#! ### Other
## Data structures implement `serde::Serialize` and `serde::Deserialize`.
serde = ["dep:serde", "bstr/serde"]

[[test]]
name = "async-packetline"
path = "tests/async-packetline.rs"
required-features = ["async-io"]

[[test]]
name = "blocking-packetline"
path = "tests/blocking-packetline.rs"
required-features = ["blocking-io", "maybe-async/is_sync"]

[dependencies]
gix-trace = { version = "^0.1.11", path = "../gix-trace" }

serde = { version = "1.0.114", optional = true, default-features = false, features = ["std", "derive"] }
thiserror = "2.0.0"
faster-hex = { version = "0.9.0" }
bstr = { version = "1.3.0", default-features = false, features = ["std"] }
# async support
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 }

document-features = { version = "0.2.0", optional = true }

[dev-dependencies]
gix-odb = { path = "../gix-odb" }
gix-pack-for-configuration = { package = "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"

[package.metadata.docs.rs]
features = ["document-features", "blocking-io", "serde"]