[package] name = "gix-pack" version = "0.51.1" repository = "https://github.com/Byron/gitoxide" authors = ["Sebastian Thiel "] license = "MIT OR Apache-2.0" description = "Implements git packs and related data structures" edition = "2021" include = ["src/**/*", "LICENSE-*"] rust-version = "1.65" autotests = false [lib] doctest = false [features] default = ["generate", "streaming-input"] ## generate new packs from a set of objects. generate = ["dep:gix-traverse", "dep:gix-diff", "dep:parking_lot", "dep:gix-hashtable"] ## Receive a pack as datastream and resolve it streaming-input = ["dep:parking_lot", "dep:gix-tempfile"] ## Provide a fixed-size allocation-free LRU cache for packs. It's useful if caching is desired while keeping the memory footprint ## for the LRU-cache itself low. pack-cache-lru-static = ["dep:uluru"] ## Provide a hash-map based LRU cache whose eviction is based a memory cap calculated from object data. pack-cache-lru-dynamic = ["dep:clru"] ## If set, select algorithms may additionally use a full-object cache which is queried before the pack itself. object-cache-dynamic = ["dep:clru", "dep:gix-hashtable"] ## Data structures implement `serde::Serialize` and `serde::Deserialize`. serde = ["dep:serde", "gix-object/serde"] ## Make it possible to compile to the `wasm32-unknown-unknown` target. wasm = ["gix-diff?/wasm"] [dependencies] gix-features = { version = "^0.38.2", path = "../gix-features", features = ["crc32", "rustsha1", "progress", "zlib"] } gix-path = { version = "^0.10.9", path = "../gix-path" } gix-hash = { version = "^0.14.2", path = "../gix-hash" } gix-chunk = { version = "^0.4.8", path = "../gix-chunk" } gix-object = { version = "^0.42.3", path = "../gix-object" } gix-hashtable = { version = "^0.5.2", path = "../gix-hashtable", optional = true } # for streaming of packs (input, output) gix-traverse = { version = "^0.39.2", path = "../gix-traverse", optional = true } gix-diff = { version = "^0.44.1", path = "../gix-diff", default-features = false, optional = true } memmap2 = "0.9.0" smallvec = "1.3.0" parking_lot = { version = "0.12.0", default-features = false, optional = true } thiserror = "1.0.26" # for caching uluru = { version = "3.0.0", optional = true } clru = { version = "0.6.1", optional = true } serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"] } ## If enabled, `cargo doc` will see feature documentation from this manifest. document-features = { version = "0.2.0", optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] gix-tempfile = { version = "^14.0.0", default-features = false, path = "../gix-tempfile", optional = true } [dev-dependencies] gix-testtools = { path = "../tests/tools"} [package.metadata.docs.rs] all-features = true features = ["document-features", "pack-cache-lru-dynamic", "object-cache-dynamic", "serde"]