mirror of
https://github.com/Byron/gitoxide
synced 2025-10-06 01:52:40 +02:00
100 lines
4.8 KiB
TOML
100 lines
4.8 KiB
TOML
lints.workspace = true
|
|
|
|
[package]
|
|
name = "gitoxide-core"
|
|
description = "The library implementing all capabilities of the gitoxide CLI"
|
|
repository = "https://github.com/GitoxideLabs/gitoxide"
|
|
version = "0.46.0"
|
|
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
|
|
license = "MIT OR Apache-2.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
doctest = false
|
|
test = false
|
|
|
|
[features]
|
|
default = []
|
|
|
|
#! ### Tools
|
|
## Discover all git repositories within a directory. Particularly useful with [skim](https://github.com/lotabout/skim).
|
|
organize = ["dep:gix-url", "dep:jwalk"]
|
|
## Derive the amount of time invested into a git repository akin to [git-hours](https://github.com/kimmobrunfeldt/git-hours).
|
|
estimate-hours = ["dep:fs-err", "dep:crossbeam-channel", "dep:smallvec"]
|
|
## Gather information about repositories and store it in a database for easy querying.
|
|
query = ["dep:rusqlite"]
|
|
## Run algorithms on a corpus of repositories and store their results for later comparison and intelligence gathering.
|
|
## *Note that* `organize` we need for finding git repositories fast.
|
|
corpus = ["dep:rusqlite", "dep:sysinfo", "organize", "dep:crossbeam-channel", "dep:serde_json", "dep:tracing-forest", "dep:tracing-subscriber", "tracing", "dep:parking_lot"]
|
|
|
|
## The ability to create archives from virtual worktrees, similar to `git archive`.
|
|
archive = ["dep:gix-archive-for-configuration-only", "gix/worktree-archive"]
|
|
|
|
## The ability to clean a repository, similar to `git clean`.
|
|
clean = ["gix/dirwalk"]
|
|
|
|
#! ### Mutually Exclusive Networking
|
|
#! If both are set, _blocking-client_ will take precedence, allowing `--all-features` to be used.
|
|
|
|
## If set, the client used to connect to git servers will use a blocking API. It supports more transports and is what most would want.
|
|
blocking-client = ["gix/blocking-network-client"]
|
|
## The client to connect to git servers will be async, while supporting only the 'git' transport itself.
|
|
## It's the most limited and can be seen as example on how to use custom transports for custom servers.
|
|
async-client = ["gix/async-network-client-async-std", "gix-transport-configuration-only/async-std", "async-trait", "futures-io", "async-net", "async-io", "futures-lite", "blocking"]
|
|
|
|
#! ### Other
|
|
## Data structures implement `serde::Serialize` and `serde::Deserialize`.
|
|
serde = ["gix/serde", "dep:serde_json", "dep:serde", "bytesize/serde"]
|
|
|
|
|
|
[dependencies]
|
|
# deselect everything else (like "performance") as this should be controllable by the parent application.
|
|
gix = { version = "^0.71.0", path = "../gix", default-features = false, features = ["merge", "blob-diff", "blame", "revision", "mailmap", "excludes", "attributes", "worktree-mutation", "credentials", "interrupt", "status", "dirwalk"] }
|
|
gix-pack-for-configuration-only = { package = "gix-pack", version = "^0.58.0", path = "../gix-pack", default-features = false, features = ["pack-cache-lru-dynamic", "pack-cache-lru-static", "generate", "streaming-input"] }
|
|
gix-transport-configuration-only = { package = "gix-transport", version = "^0.46.0", path = "../gix-transport", default-features = false }
|
|
gix-archive-for-configuration-only = { package = "gix-archive", version = "^0.20.0", path = "../gix-archive", optional = true, features = ["tar", "tar_gz"] }
|
|
gix-status = { version = "^0.18.0", path = "../gix-status" }
|
|
gix-fsck = { version = "^0.10.0", path = "../gix-fsck" }
|
|
serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"] }
|
|
anyhow = "1.0.98"
|
|
thiserror = "2.0.0"
|
|
bytesize = "2.0.1"
|
|
tempfile = "3.19.1"
|
|
|
|
# for async-client
|
|
async-trait = { version = "0.1.51", optional = true }
|
|
async-net = { version = "2.0", optional = true }
|
|
futures-lite = { version = "2.1.0", optional = true }
|
|
async-io = { version = "2.2", optional = true }
|
|
futures-io = { version = "0.3.16", optional = true }
|
|
blocking = { version = "1.0.2", optional = true }
|
|
|
|
# for 'organize' functionality
|
|
gix-url = { version = "^0.30.0", path = "../gix-url", optional = true }
|
|
jwalk = { version = "0.8.0", optional = true }
|
|
|
|
# for 'hours'
|
|
fs-err = { version = "3.1.0", optional = true }
|
|
crossbeam-channel = { version = "0.5.15", optional = true }
|
|
smallvec = { version = "1.15.0", optional = true }
|
|
|
|
# for 'query' and 'corpus'
|
|
rusqlite = { version = "0.35.0", optional = true, features = ["bundled"] }
|
|
|
|
# for 'corpus'
|
|
parking_lot = { version = "0.12.1", optional = true }
|
|
sysinfo = { version = "0.34.2", optional = true, default-features = false, features = ["system"] }
|
|
serde_json = { version = "1.0.65", optional = true }
|
|
tracing-forest = { version = "0.1.5", features = ["serde"], optional = true }
|
|
tracing-subscriber = { version = "0.3.17", optional = true }
|
|
tracing = { version = "0.1.37", optional = true }
|
|
|
|
# for svg graph output
|
|
layout-rs = "0.1.3"
|
|
open = "5.0.0"
|
|
|
|
document-features = { version = "0.2.0", optional = true }
|
|
|
|
[package.metadata.docs.rs]
|
|
features = ["document-features", "blocking-client", "organize", "estimate-hours", "serde"]
|