Cargo Features

[dependencies]
arti = { version = "1.2.2", default-features = false, features = ["full", "async-std", "bridge-client", "dns-proxy", "experimental-api", "harden", "tokio", "native-tls", "onion-service-client", "onion-service-service", "vanguards", "pt-client", "rustls", "static", "static-sqlite", "static-native-tls", "journald", "accel-sha1-asm", "accel-openssl", "compression", "experimental", "rpc"] }
default = bridge-client, compression, dns-proxy, harden, native-tls, onion-service-client, pt-client, tokio, 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, dns-proxy, harden, journald, native-tls, onion-service-client, onion-service-service, pt-client, tokio, vanguards

Enables full of arti-client, optional arti-rpcserver, fs-mistrust, safelog, 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

dns-proxy default full? = hickory-proto
experimental-api experimental? = 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
tokio default full? = tokio-crate, tokio-util

Enables tokio of arti-client and tor-rtcompat

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

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

onion-service-client default full?

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

pt-client default full? = bridge-client

Enables pt-client 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 = experimental-api, rpc

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

Enables experimental of arti-client

rpc experimental? = arti-rpcserver, tor-rpcbase

Affects cfg::RpcConfig

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?
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 onion-service-service?
tor-rpcbase rpc?
tracing-journald journald?
hickory-proto dns-proxy
visibility experimental-api?