lints.workspace = true
[package]
name = "gix"
repository = "https://github.com/GitoxideLabs/gitoxide"
description = "Interact with git repositories just like git would"
license = "MIT OR Apache-2.0"
version = "0.73.0"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
edition = "2021"
include = ["src/**/*", "LICENSE-*"]
rust-version = "1.75"
[lib]
doctest = false
test = true
[[example]]
name = "clone"
path = "examples/clone.rs"
required-features = ["blocking-network-client"]
[features]
default = ["max-performance-safe", "comfort", "basic", "extras"]
basic = ["blob-diff", "revision", "index"]
extras = [
"worktree-stream",
"worktree-archive",
"revparse-regex",
"mailmap",
"excludes",
"attributes",
"worktree-mutation",
"credentials",
"interrupt",
"status",
"dirwalk",
]
need-more-recent-msrv = ["merge", "tree-editor"]
comfort = [
"gix-features/progress-unit-bytes",
"gix-features/progress-unit-human-numbers",
]
command = ["dep:gix-command"]
status = ["gix-status", "dirwalk", "index", "blob-diff", "gix-diff/index"]
interrupt = ["dep:signal-hook", "gix-tempfile/signals", "dep:parking_lot"]
index = ["dep:gix-index"]
dirwalk = ["dep:gix-dir", "attributes", "excludes"]
credentials = ["dep:gix-credentials", "dep:gix-prompt", "dep:gix-negotiate"]
worktree-mutation = ["attributes", "dep:gix-worktree-state"]
excludes = ["dep:gix-ignore", "dep:gix-worktree", "index"]
tree-editor = []
attributes = [
"excludes",
"dep:gix-filter",
"dep:gix-pathspec",
"dep:gix-attributes",
"dep:gix-submodule",
"gix-worktree?/attributes",
"command",
]
mailmap = ["dep:gix-mailmap", "revision"]
revision = ["gix-revision/describe", "gix-revision/merge_base", "index"]
revparse-regex = ["regex", "revision"]
blob-diff = ["gix-diff/blob", "attributes"]
merge = ["tree-editor", "blob-diff", "dep:gix-merge", "attributes"]
blame = ["dep:gix-blame"]
worktree-stream = ["gix-worktree-stream", "attributes"]
worktree-archive = ["gix-archive", "worktree-stream", "attributes"]
async-network-client = [
"gix-protocol/async-client",
"gix-pack/streaming-input",
"dep:gix-transport",
"attributes",
"credentials",
]
async-network-client-async-std = [
"async-std",
"async-network-client",
"gix-transport/async-std",
]
blocking-network-client = [
"gix-protocol/blocking-client",
"gix-pack/streaming-input",
"dep:gix-transport",
"attributes",
"credentials",
]
blocking-http-transport-curl = [
"blocking-network-client",
"gix-transport/http-client-curl",
]
blocking-http-transport-curl-rustls = [
"blocking-http-transport-curl",
"gix-transport/http-client-curl-rust-tls",
]
blocking-http-transport-reqwest = [
"blocking-network-client",
"gix-transport/http-client-reqwest",
]
blocking-http-transport-reqwest-rust-tls = [
"blocking-http-transport-reqwest",
"gix-transport/http-client-reqwest-rust-tls",
]
blocking-http-transport-reqwest-rust-tls-trust-dns = [
"blocking-http-transport-reqwest",
"gix-transport/http-client-reqwest-rust-tls-trust-dns",
]
blocking-http-transport-reqwest-native-tls = [
"blocking-http-transport-reqwest",
"gix-transport/http-client-reqwest-native-tls",
]
max-control = ["parallel", "pack-cache-lru-static", "pack-cache-lru-dynamic"]
max-performance-safe = ["max-control"]
hp-tempfile-registry = ["gix-tempfile/hp-hashmap"]
parallel = ["gix-features/parallel"]
pack-cache-lru-static = ["gix-pack/pack-cache-lru-static"]
pack-cache-lru-dynamic = ["gix-pack/pack-cache-lru-dynamic"]
max-performance = ["max-control"]
zlib-ng = ["gix-features/zlib"]
zlib-rs = ["gix-features/zlib"]
zlib-ng-compat = ["gix-features/zlib"]
zlib-stock = ["gix-features/zlib"]
tracing = ["gix-features/tracing"]
tracing-detail = ["gix-features/tracing-detail", "tracing"]
verbose-object-parsing-errors = ["gix-object/verbose-object-parsing-errors"]
serde = [
"dep:serde",
"gix-pack/serde",
"gix-object/serde",
"gix-protocol/serde",
"gix-transport?/serde",
"gix-ref/serde",
"gix-odb/serde",
"gix-index?/serde",
"gix-mailmap?/serde",
"gix-url/serde",
"gix-attributes?/serde",
"gix-ignore?/serde",
"gix-revision/serde",
"gix-worktree?/serde",
"gix-commitgraph/serde",
"gix-credentials?/serde",
]
progress-tree = ["prodash/progress-tree"]
cache-efficiency-debug = ["gix-features/cache-efficiency-debug"]
[dependencies]
gix-utils = { version = "^0.3.0", path = "../gix-utils" }
gix-fs = { version = "^0.16.0", path = "../gix-fs" }
gix-ref = { version = "^0.53.0", path = "../gix-ref" }
gix-discover = { version = "^0.41.0", path = "../gix-discover" }
gix-tempfile = { version = "^18.0.0", path = "../gix-tempfile", default-features = false }
gix-lock = { version = "^18.0.0", path = "../gix-lock" }
gix-validate = { version = "^0.10.0", path = "../gix-validate" }
gix-sec = { version = "^0.12.0", path = "../gix-sec" }
gix-date = { version = "^0.10.3", path = "../gix-date" }
gix-refspec = { version = "^0.31.0", path = "../gix-refspec" }
gix-filter = { version = "^0.20.0", path = "../gix-filter", optional = true }
gix-dir = { version = "^0.15.0", path = "../gix-dir", optional = true }
gix-config = { version = "^0.46.0", path = "../gix-config" }
gix-odb = { version = "^0.70.0", path = "../gix-odb" }
gix-hash = { version = "^0.19.0", path = "../gix-hash" }
gix-shallow = { version = "^0.5.0", path = "../gix-shallow" }
gix-object = { version = "^0.50.0", path = "../gix-object" }
gix-actor = { version = "^0.35.2", path = "../gix-actor" }
gix-pack = { version = "^0.60.0", path = "../gix-pack", default-features = false, features = [
"object-cache-dynamic",
] }
gix-revision = { version = "^0.35.0", path = "../gix-revision", default-features = false }
gix-revwalk = { version = "^0.21.0", path = "../gix-revwalk" }
gix-negotiate = { version = "^0.21.0", path = "../gix-negotiate", optional = true }
gix-path = { version = "^0.10.19", path = "../gix-path" }
gix-url = { version = "^0.32.0", path = "../gix-url" }
gix-traverse = { version = "^0.47.0", path = "../gix-traverse" }
gix-diff = { version = "^0.53.0", path = "../gix-diff", default-features = false }
gix-merge = { version = "^0.6.0", path = "../gix-merge", default-features = false, optional = true }
gix-mailmap = { version = "^0.27.2", path = "../gix-mailmap", optional = true }
gix-features = { version = "^0.43.0", path = "../gix-features", features = [
"progress",
"once_cell",
] }
gix-trace = { version = "^0.1.13", path = "../gix-trace" }
gix-glob = { version = "^0.21.0", path = "../gix-glob" }
gix-credentials = { version = "^0.30.0", path = "../gix-credentials", optional = true }
gix-prompt = { version = "^0.11.1", path = "../gix-prompt", optional = true }
gix-index = { version = "^0.41.0", path = "../gix-index", optional = true }
gix-attributes = { version = "^0.27.0", path = "../gix-attributes", optional = true }
gix-ignore = { version = "^0.16.0", path = "../gix-ignore", optional = true }
gix-worktree = { version = "^0.42.0", path = "../gix-worktree", optional = true, default-features = false }
gix-worktree-state = { version = "^0.20.0", path = "../gix-worktree-state", optional = true }
gix-hashtable = { version = "^0.9.0", path = "../gix-hashtable" }
gix-commitgraph = { version = "^0.29.0", path = "../gix-commitgraph" }
gix-pathspec = { version = "^0.12.0", path = "../gix-pathspec", optional = true }
gix-submodule = { version = "^0.20.0", path = "../gix-submodule", optional = true }
gix-status = { version = "^0.20.0", path = "../gix-status", optional = true, features = [
"worktree-rewrites",
] }
gix-command = { version = "^0.6.2", path = "../gix-command", optional = true }
gix-worktree-stream = { version = "^0.22.0", path = "../gix-worktree-stream", optional = true }
gix-archive = { version = "^0.22.0", path = "../gix-archive", default-features = false, optional = true }
gix-blame = { version = "^0.3.0", path = "../gix-blame", optional = true }
gix-protocol = { version = "^0.51.0", path = "../gix-protocol" }
gix-transport = { version = "^0.48.0", path = "../gix-transport", optional = true }
prodash = { version = "30.0.1", optional = true, features = ["progress-tree"] }
once_cell = "1.21.3"
signal-hook = { version = "0.3.18", default-features = false, optional = true }
thiserror = "2.0.0"
serde = { version = "1.0.114", optional = true, default-features = false, features = [
"derive",
] }
smallvec = "1.15.1"
async-std = { version = "1.12.0", optional = true }
regex = { version = "1.6.0", optional = true, default-features = false, features = [
"std",
] }
parking_lot = { version = "0.12.4", optional = true }
document-features = { version = "0.2.0", optional = true }
[dev-dependencies]
gix = { path = ".", default-features = false, features = [
"need-more-recent-msrv",
] }
pretty_assertions = "1.4.0"
gix-testtools = { path = "../tests/tools" }
is_ci = "1.1.1"
anyhow = "1"
walkdir = "2.3.2"
serial_test = { version = "3.1.0", default-features = false }
async-std = { version = "1.12.0", features = ["attributes"] }
termtree = "0.5.1"
insta = "1.43.1"
[package.metadata.docs.rs]
features = [
"document-features",
"max-performance",
"blocking-network-client",
"blocking-http-transport-curl",
"need-more-recent-msrv",
"serde",
]