Cargo Features

[dependencies]
arti = { version = "1.3.0", default-features = false, features = ["full", "async-std", "bridge-client", "default-runtime", "dns-proxy", "experimental-api", "harden", "keymgr", "memquota", "tokio", "native-tls", "onion-service-client", "onion-service-service", "vanguards", "hs-pow", "pt-client", "ctor-keystore", "rustls", "static", "static-sqlite", "static-native-tls", "journald", "accel-sha1-asm", "accel-openssl", "compression", "experimental", "rpc", "restricted-discovery", "hsc"] }

We need a runtime
@@ test-all-crates conditional-option minimal --features=default-runtime

default = bridge-client, compression, default-runtime, dns-proxy, harden, onion-service-client, pt-client, vanguards

These default features are set whenever arti is added without default-features = false somewhere in the dependency tree.

full = async-std, bridge-client, compression, default-runtime, dns-proxy, harden, journald, memquota, native-tls, onion-service-client, onion-service-service, pt-client, tokio, vanguards

Enables full of arti-client, optional arti-rpcserver, fs-mistrust, safelog, tor-async-utils, tor-config, tor-error, optional tor-hsrproxy, optional tor-hsservice, optional tor-rpcbase, tor-rtcompat, and tor-socksproto

arti-client:

"full" is a top-level selector that turns on every feature, _EXCEPT FOR_:

async-std full? = async-ctrlc, signal-hook, signal-hook-async-std

Enables async-std of arti-client and tor-rtcompat

arti-client:

* Features that are experimental or unstable
* Features that are testing-only
* Features which are select a particular implementation or build flag and
which therefore are not strictly additive.
* Features which may introduce unnecessary licensing restrictions.

bridge-client default full? pt-client

Enables bridge-client of arti-client

default-runtime default full? = native-tls, tokio
dns-proxy default full? = hickory-proto
experimental-api experimental? hsc? = visibility

Enables experimental-api of arti-client

arti-client:

Enable experimental APIs that are not yet officially supported.

These APIs are not covered by semantic versioning. Using this feature voids your "semver warrantee".

harden default full? = secmem-proc
keymgr experimental? hsc?

Enables keymgr of arti-client

memquota full?

Enables memquota of arti-client

tokio default-runtime full? = tokio-crate, tokio-util

Enables tokio of arti-client and tor-rtcompat

native-tls default-runtime full? static-native-tls?

Enables native-tls of arti-client and tor-rtcompat

onion-service-client default full? hsc?

Enables onion-service-client of arti-client

onion-service-service full? = tor-hsrproxy, tor-hsservice

Enables onion-service-service of arti-client

vanguards default full?

Enables vanguards of arti-client

hs-pow experimental?

Enables hs-pow of arti-client

pt-client default full? = bridge-client

Enables pt-client of arti-client

ctor-keystore experimental?

Enables ctor-keystore of arti-client

rustls = rustls-crate

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.

Enables rustls of arti-client and tor-rtcompat

static

depends directly on arti-client/static so native-tls doesn't get automatically included

Enables static of arti-client

static-sqlite

Enables static-sqlite of arti-client

static-native-tls = native-tls

Enables static-native-tls of arti-client

journald full? = tracing-journald
accel-sha1-asm

Enables accel-sha1-asm of arti-client

accel-openssl

Enables accel-openssl of arti-client

compression default full?

Enables compression of arti-client

experimental = ctor-keystore, experimental-api, hs-pow, hsc, keymgr, restricted-discovery, rpc

This feature flag enables experimental features that are not supported. Turning it on may void your API.

Enables experimental of arti-client and tor-hsservice

rpc experimental? = arti-rpcserver, derive-deftly, tor-rpcbase

Affects cfg::RpcConfig

restricted-discovery experimental?

Enables restricted-discovery of tor-hsservice

hsc experimental? = dialoguer, experimental-api, keymgr, onion-service-client

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.

arti-rpcserver rpc?
async-ctrlc async-std?
dialoguer hsc?
derive-deftly rpc?
hickory-proto dns-proxy
rustls-crate rustls?

Enables rustls

secmem-proc harden
signal-hook async-std?
signal-hook-async-std async-std?
tokio-crate tokio?

Enables tokio

tokio-util tokio?
tor-hsrproxy onion-service-service?
tor-hsservice experimental? onion-service-service? restricted-discovery?
tor-rpcbase rpc?
tracing-journald journald?
visibility experimental-api?