[package] name = "git-features" description = "A crate to integrate various capabilities using compile-time feature flags" repository = "https://github.com/Byron/gitoxide" version = "0.17.0" authors = ["Sebastian Thiel "] 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.8.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"] }