You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Cargo.toml
+92-28Lines changed: 92 additions & 28 deletions
Original file line number
Diff line number
Diff line change
@@ -25,11 +25,84 @@ doctest = false
25
25
[features]
26
26
default = ["max"]
27
27
28
+
#! ### Build Configuration
29
+
#! These combine common choices of building blocks to represent typical builds.
30
+
31
+
## Everything, all at once.
32
+
##
33
+
## As fast as possible, with TUI progress, progress line rendering with auto-configuration, all transports based on their most mature implementation (HTTP), all `ein` tools, CLI colors and local-time support, JSON output, regex support for rev-specs.
34
+
max = ["max-control", "fast", "gitoxide-core-blocking-client", "http-client-curl"]
35
+
36
+
## Like `max`, but only Rust is allowed.
37
+
##
38
+
## This is the most compatible build as it won't need a C compiler or C toolchains to build. It's also not the fastest as or the most feature-rich in terms of available
39
+
## transports as it uses Rust's HTTP implementation.
40
+
##
41
+
## As fast as possible, with TUI progress, progress line rendering with auto-configuration, all transports available but less mature pure Rust HTTP implementation, all `ein` tools, CLI colors and local-time support, JSON output, regex support for rev-specs.
## All of the good stuff, with less fanciness for smaller binaries.
48
+
##
49
+
## As fast as possible, progress line rendering, all transports based on their most mature implementation (HTTP), all `ein` tools, CLI colors and local-time support, JSON output.
## The smallest possible build, best suitable for small single-core machines.
53
+
##
54
+
## This build is essentially limited to local operations without any fanciness.
55
+
##
56
+
## Optimized for size, no parallelism thus much slower, progress line rendering.
57
+
small = ["pretty-cli", "gix-features/rustsha1", "gix-features/zlib-rust-backend", "prodash-render-line", "is-terminal" ]
58
+
59
+
## Like lean, but uses Rusts async implementations for networking.
60
+
##
61
+
## This build is more of a demonstration showing how async can work with `gitoxide`, which generally is blocking. This also means that the selection of async transports
62
+
## is very limited to only HTTP (without typical `git` configuration) and git over TCP like provided by the `git daemon`.
63
+
##
64
+
## As fast as possible, progress line rendering, less feature-ful HTTP (pure Rust) and only `git-damon` support, all `ein` tools, CLI colors and local-time support, JSON output.
65
+
##
66
+
## Due to async client-networking not being implemented for most transports, this one supports only the 'git+tcp' and HTTP transport.
67
+
## It uses, however, a fully asynchronous networking implementation which can serve a real-world example on how to implement custom async transports.
Copy file name to clipboardExpand all lines: README.md
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -145,6 +145,9 @@ effortlessly and for your particular CPU for additional performance gains.
145
145
The minimum supported Rust version is [documented in the CI configuration](https://github.com/Byron/gitoxide/blob/main/.github/workflows/msrv.yml#L23),
146
146
the latest stable one will work as well.
147
147
148
+
There are various build configurations, all of them are [documented here](https://docs.rs/crate/gitoxide/latest). The documentation should also be useful
149
+
for packagers who need to tune external dependencies.
150
+
148
151
```
149
152
# A certain way to install `gitoxide` with just Rust and a C compiler installed.
150
153
# If there are problems with SSL certificates during clones, try to omit `--locked`.
0 commit comments