Cargo Features
[dependencies]
sprinkles-rs = { version = "0.15.2", default-features = false, features = ["beta", "manifest-hashes", "parallel", "parking_lot", "rustls-tls", "rustls-tls-native-roots", "v1", "vendored-libgit2", "vendored-native-tls", "vendored-openssl", "zlib-ng", "zlib-ng-compat", "zlib-stock", "clap"] }
- default = manifest-hashes, parallel
-
These default features are set whenever
sprinkles-rs
is added without
somewhere in the dependency tree.default-features = false - beta
- manifest-hashes default = base64, digest, getset, quick-xml, serde_json_path, sha1, sha2, sxd-document, sxd-xpath, tokio-util, url, urlencoding
-
Affects
sprinkles-rs::cache
,sprinkles-rs::hash
,manifest::InstallConfig.hash
,version::ParsedVersion
… - parallel default = rayon
-
Enables rayon of blake3 and indicatif
blake3:
The
rayon
feature (disabled by default, but enabled for docs.rs) adds theupdate_rayon
and (in combination withmmap
below)update_mmap_rayon
methods, for multithreaded hashing. However, even if this feature is enabled, all other APIs remain single-threaded.Implementation detail: We take a dependency on rayon-core instead of rayon, because it builds faster and still includes all the APIs we need.
- parking_lot
-
Enables parking_lot of tokio
- rustls-tls
-
Enables rustls-tls of reqwest and blocking-http…reqwest-rust-tls of gix ^0.63
gix:
Stacks with
blocking-http-transport-reqwest
and enableshttps://
via therustls
crate. - rustls-tls-native-roots
-
Enables rustls-tls-native-roots of reqwest
- v1
- vendored-libgit2
-
Enables vendored-libgit2 of git2 ^0.18
- vendored-native-tls
-
Enables native-tls-vendored of reqwest and blocking-http…reqwest-native-tls of gix ^0.63
gix:
Stacks with
blocking-http-transport-reqwest
and enableshttps://
via thenative-tls
crate. - vendored-openssl
-
Enables vendored-openssl of git2 ^0.18
- zlib-ng
-
gix:
Use the C-based zlib-ng backend, which can compress and decompress significantly faster. Note that this will cause duplicate symbol errors if the application also depends on
zlib
- usezlib-ng-compat
in that case. - zlib-ng-compat
-
Enables zlib-ng-compat of git2 ^0.18 and gix ^0.63
gix:
Use zlib-ng via its zlib-compat API. Useful if you already need zlib for C code elsewhere in your dependencies. Otherwise, use
zlib-ng
. - zlib-stock
-
Enables zlib-stock of gix ^0.63
gix:
Use a slower C-based backend which can compress and decompress significantly faster than the rust version. Unlike
zlib-ng-compat
, this allows using dynamic linking with systemzlib
libraries and doesn't require cmake.
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.
- base64 manifest-hashes
- clap implicit feature
-
Enables clap
clap:
A simple to use, efficient, and full-featured Command Line Argument Parser
- digest manifest-hashes
- getset manifest-hashes
- quick-xml manifest-hashes
-
Enables quick-xml ^0.31
- rayon parallel
- serde_json_path manifest-hashes
- sha1 manifest-hashes
- sha2 manifest-hashes
- sxd-document manifest-hashes
- sxd-xpath manifest-hashes
- tokio-util manifest-hashes
- url manifest-hashes
- urlencoding manifest-hashes