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 default-features = false somewhere in the dependency tree.

beta
manifest-hashes default = base64, digest, getset, quick-xml, serde_json_path, sha1, sha2, sxd-document, sxd-xpath, tokio-util, url, urlencoding

Enables fs of tokio

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 the update_rayon and (in combination with mmap 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 enables https:// via the rustls 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 enables https:// via the native-tls crate.

vendored-openssl

Enables vendored-openssl of git2 ^0.18

zlib-ng

Enables zlib-ng of gix ^0.63

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 - use zlib-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 system zlib 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