git-features 0.16.5

A crate to integrate various capabilities using compile-time feature flags
Documentation
[package]
name = "git-features"
description = "A crate to integrate various capabilities using compile-time feature flags"
repository = "https://github.com/Byron/gitoxide"
version = "0.16.5"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
license = "MIT/Apache-2.0"
edition = "2018"

[lib]
doctest = false
test = false

[features]
default = []
progress = ["prodash"]
parallel = ["crossbeam-utils", "crossbeam-channel", "num_cpus", "jwalk"]
fast-sha1 = ["sha-1"]
io-pipe = ["bytes"]
crc32 = ["crc32fast"]
zlib = ["flate2", "flate2/rust_backend", "quick-error"]
zlib-ng-compat = ["flate2/zlib-ng-compat"]
zlib-rust-backend = ["flate2/rust_backend"]
cache-efficiency-debug = []

[[test]]
name = "hash"
path = "tests/hash.rs"
required-features = ["rustsha1"]

[[test]]
name = "parallel"
path = "tests/parallel_threaded.rs"
required-features = ["parallel", "rustsha1"]

[[test]]
name = "multi-threaded"
path = "tests/parallel_shared_threaded.rs"
required-features = ["parallel", "rustsha1"]

[[test]]
name = "single-threaded"
path = "tests/parallel_shared.rs"
required-features = ["rustsha1"]

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

[dependencies]
git-hash = { version ="^0.7.0", path = "../git-hash" }

# 'parallel' feature
crossbeam-utils = { version = "0.8.5", optional = true }
crossbeam-channel = { version = "0.5.0", optional = true }
num_cpus = { version = "1.13.0", optional = true }

jwalk = { version = "0.6.0", optional = true }
walkdir = { version = "2.3.1", optional = true } # used when parallel is off

# hashing and 'fast-sha1' feature
rustsha1 = { package = "sha1", version = "0.6.0", optional = true }
crc32fast = { version = "1.2.1", optional = true }
sha-1 = { version = "0.9.1", optional = true }

# progress
prodash = { version = "16.0.0", optional = true, default-features = false, features = ["unit-bytes", "unit-human"] }

# pipe
bytes = { version = "1.0.0", optional = true }

# zlib module
flate2 = { version = "1.0.17", optional = true, default-features = false }
quick-error = { version = "2.0.0", optional = true }

# time module
time = { version = "0.3.2", optional = true, default-features = false, features = ["local-offset"] }

[package.metadata.docs.rs]
all-features = true

# Assembly doesn't yet compile on MSVC on windows, but does on GNU, see https://github.com/RustCrypto/asm-hashes/issues/17
[target.'cfg(not(all(target_os = "windows", target_env = "msvc")))'.dependencies]
sha-1 = { version = "0.9.1", optional = true, features = ["asm"] }