forked from GitoxideLabs/gitoxide
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
72 lines (60 loc) · 3 KB
/
Cargo.toml
File metadata and controls
72 lines (60 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
lints.workspace = true
[package]
name = "gix-pack"
version = "0.65.0"
repository = "https://github.com/GitoxideLabs/gitoxide"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
license = "MIT OR Apache-2.0"
description = "Implements git packs and related data structures"
edition = "2021"
include = ["src/**/*", "LICENSE-*"]
rust-version = "1.82"
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.46.0", path = "../gix-features", features = ["crc32", "progress", "zlib"] }
gix-path = { version = "^0.11.0", path = "../gix-path" }
gix-hash = { version = "^0.22.0", path = "../gix-hash" }
gix-chunk = { version = "^0.5.0", path = "../gix-chunk" }
gix-error = { version = "^0.0.0", path = "../gix-error" }
gix-object = { version = "^0.55.0", path = "../gix-object" }
gix-hashtable = { version = "^0.12.0", path = "../gix-hashtable", optional = true }
# for streaming of packs (input, output)
gix-traverse = { version = "^0.52.0", path = "../gix-traverse", optional = true }
gix-diff = { version = "^0.58.0", path = "../gix-diff", default-features = false, optional = true }
memmap2 = "0.9.7"
smallvec = "1.15.1"
parking_lot = { version = "0.12.4", default-features = false, optional = true }
thiserror = "2.0.18"
# 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 = "^21.0.0", default-features = false, path = "../gix-tempfile", optional = true }
[dev-dependencies]
gix-testtools = { path = "../tests/tools" }
gix-hash = { version = "^0.22.0", path = "../gix-hash", features = ["sha256"] }
[package.metadata.docs.rs]
all-features = true
features = ["document-features", "pack-cache-lru-dynamic", "object-cache-dynamic", "serde"]