Cargo Features

[dependencies]
kvarn = { version = "0.6.3", default-features = false, features = ["full", "base", "all-compression", "br", "gzip", "zstd", "zstd-multithread", "all-http", "https", "http2", "http3", "graceful-shutdown", "handover", "nonce", "websocket", "async-networking", "uring"] }
default = full

The full feature is set by default whenever kvarn is added without default-features = false somewhere in the dependency tree.

full default = all-compression, all-http, base, graceful-shutdown, nonce, websocket

Enable all features

base full = async-networking, handover

Enable basic features (for all devices but embedded)

all-compression full = br, gzip, zstd

Compressing

br all-compression? = brotli

Affects comprash::CompressionOptions.brotli_level

gzip all-compression? = flate2

Affects comprash::CompressionOptions.gzip_level

zstd all-compression? zstd-multithread?

Enables zstd

Affects comprash::CompressionOptions.zstd_level

zstd-multithread

Enables zstdmt of zstd

all-http full = http2, http3, https

HTTP standards

https all-http? http2? http3? = async-networking, rustls, rustls-pemfile, rustls-webpki

Affects encryption::attach_crypto_provider, host::Host.certificate, host::CertificateError, host::get_certified_key

http2 all-http? = h2, https

Affects application::H2SendResponse

http3 all-http? = h3, h3-quinn, https, quinn
graceful-shutdown full = handover

Graceful shutdown; shutdown.rs

handover base? graceful-shutdown? = kvarn_signal

Handover

Affects kvarn::ctl

nonce full = base64, memchr, rand

nonce implementation

websocket full = base64, futures-util, sha-1, tokio-tungstenite

WebSockets

async-networking base? https? uring? = socket2

Use tokio's async networking instead of the blocking variant.

Enables net of tokio

uring = async-networking, tokio-uring

Enables uring of kvarn_signal

Affects extensions::RetFut, extensions::RetSyncFut, extensions::KvarnSendSync, extensions::If, extensions::ready, kvarn::spawn

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.

socket2 async-networking?
h2 http2?
kvarn_signal handover? uring?
tokio-uring uring?

Enables kvarn-tokio-uring

rustls https?

Enables rustls

HTTPS

rustls-pemfile https?
rustls-webpki https?
base64 nonce? websocket?

Enables base64

nonce

memchr nonce?
rand nonce?
brotli br?

Enables brotli

Compression

flate2 gzip?
tokio-tungstenite websocket?

Enables tokio-tungstenite

WebSockets

sha-1 websocket?
futures-util websocket?
h3 http3?

Enables h3

HTTP/3

h3-quinn http3?
quinn http3?