Security Features Home Extensions Ecosystem

Certain features, such as HTTP/2, HTTPS, or compression might not be needed. When Kvarn is deployed to an IOT device controlled from within the network, these features aren’t needed. Disabling them cuts down on compilation time, memory requirements, and space requirements.

To view the dependencies used by each feature, see the Cargo.toml file.

These can be enabled in your Cargo.toml:

[dependencies]
kvarn = { version = "0.5", default-features = false, features = ["base", "https", "http2", "all-compression"] }

See the official Cargo guide on the matter.


Which Cargo features are required for certain items are also shown in the docs (e.g. the Host::new function).

Please always enable base (see below for more details).

There are additionally several feature sets:

Embedded

Some embedded platforms have std support (e.g. ESP32-IDF) but don’t support mio. Disabling the feature async-networking causes Kvarn to block on every request, but removes the dependency on mio. It’s very useful for IOT devices which don’t need large throughput nor sub-ms responsiveness (which the embedded controllers doesn’t have computing power to achieve anyway).