Cargo Features

tor-rtcompat has no features set by default.

[dependencies]
tor-rtcompat = { version = "0.23.0", features = ["full", "async-std", "tokio", "static", "native-tls", "rustls"] }
full = async-std, native-tls, tokio

Enables full of tor-error

async-std full? = async-io, async-std-crate

Enables async_std of async_executors

Affects tor-rtcompat::async_std, tor-rtcompat::PreferredRuntime

tokio full? = tokio-crate, tokio-util

Enables tokio_io, tokio_timer and tokio_tp of async_executors

Affects tor-rtcompat::tokio, tor-rtcompat::PreferredRuntime

static

Enables vendored of optional native-tls

Used for testing our TLS implementation.

native-tls full? = async-native-tls, native-tls-crate

Affects async_std::AsyncStdNativeTlsRuntime, tokio::TokioNativeTlsRuntime, tor-rtcompat::tokio, tor-rtcompat::async_std, tor-rtcompat::PreferredRuntime

rustls = futures-rustls, rustls-pki-types, x509-signature

This is not nonadditive from a software POV, but we mark it as such because it includes code licensed under the old OpenSSL license (which was 4-clause BSD),
which in turn introduces a GPL-incompatibility.

Affects async_std::AsyncStdRustlsRuntime, tokio::TokioRustlsRuntime, tor-rtcompat::tokio, tor-rtcompat::async_std, tor-rtcompat::PreferredRuntime

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.

async-io async-std?
async-native-tls native-tls?
async-std-crate async-std?

Enables async-std

futures-rustls rustls?
native-tls-crate native-tls?

Enables native-tls

rustls-pki-types rustls?
tokio-crate tokio?

Enables tokio

tokio-util tokio?
x509-signature rustls?