Cargo Features
gitoxide-core has no features set by default.
[dependencies]
gitoxide-core = { version = "0.42.0", features = ["organize", "estimate-hours", "query", "corpus", "archive", "clean", "blocking-client", "async-client", "serde", "document-features"] }
- organize corpus?
-
Tools
Discover all git repositories within a directory. Particularly useful with skim.
gix-url:
for 'organize' functionality
Affects
gitoxide-core::organize
… - estimate-hours
-
Derive the amount of time invested into a git repository akin to git-hours.
Enables crossbeam-channel, fs-err ^2.6.0, and smallvec
fs-err:
for 'hours'
Affects
gitoxide-core::hours
… - query
-
Gather information about repositories and store it in a database for easy querying.
Enables rusqlite
for 'query' and 'corpus'
Affects
gitoxide-core::query
… - corpus = organize, tracing
-
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.Enables crossbeam-channel, parking_lot, rusqlite, serde_json, sysinfo ^0.31.2, tracing-forest, and tracing-subscriber
parking_lot:
for 'corpus'
Affects
gitoxide-core::corpus
… - archive
-
The ability to create archives from virtual worktrees, similar to
git archive
.Enables gix-archive and worktree-archive of gix
deselect everything else (like "performance") as this should be controllable by the parent application.
Affects
repository::archive
… - clean
-
The ability to clean a repository, similar to
git clean
.Enables gix
Affects
repository::clean
… - blocking-client
-
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.
Enables blocking-network-client of gix
Affects
repository::clone
,repository::fetch
,pack::receive
… - async-client = async-io, async-net, async-trait, blocking, futures-io, futures-lite
-
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.Enables async-network-client-async-std of gix, async-std of gix-transport
Affects
pack::receive
… - serde
-
Other
Data structures implement
serde::Serialize
andserde::Deserialize
.Enables serde and serde_json, serde of bytesize and gix
Features from optional dependencies
In crates that don't use the dep:
syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.
- async-trait async-client?
-
Enables async-trait
for async-client
- async-net async-client?
- futures-lite async-client?
- async-io async-client?
- futures-io async-client?
- blocking async-client?
- tracing corpus?
- document-features implicit feature
-
Enables document-features
document-features:
Extract documentation for the feature flags from comments in Cargo.toml