Cargo Features

[dependencies]
arti-client = { version = "0.17.0", default-features = false, features = ["full", "async-std", "bridge-client", "tokio", "native-tls", "pt-client", "rustls", "static", "static-sqlite", "static-native-tls", "accel-sha1-asm", "accel-openssl", "onion-service-client", "onion-service-service", "keymgr", "compression", "experimental", "experimental-api", "dirfilter", "error_detail", "geoip", "rpc", "vanguards"] }
default = compression, native-tls, tokio

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

full = anyhow, async-std, bridge-client, compression, keymgr, native-tls, onion-service-client, onion-service-service, pt-client, tokio

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

Enables full of fs-mistrust, safelog, tor-async-utils, tor-basic-utils, tor-cell, tor-chanmgr, tor-checkable, tor-circmgr, tor-config, tor-dirmgr, tor-error, optional tor-geoip, tor-guardmgr, optional tor-hsclient, optional tor-hscrypto, optional tor-hsservice, tor-keymgr, tor-linkspec, tor-llcrypto, tor-netdir, tor-netdoc, tor-persist, tor-proto, optional tor-ptmgr, optional tor-rpcbase, and tor-rtcompat

async-std full?

* 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.

Enables async-std of tor-rtcompat

bridge-client full? pt-client?

Enables bridge-client of tor-dirmgr and tor-guardmgr

tor-guardmgr:

Support for using bridges as a client. Note that this is not the same as the pt-client feature, since here we are not concerned with pluggable transports necessarily.

tokio default full?

Enables tokio of tor-proto and tor-rtcompat

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

Enables native-tls of tor-rtcompat

pt-client full? = bridge-client, tor-ptmgr

Enables pt-client of tor-chanmgr and tor-guardmgr

tor-guardmgr:

Support for pluggable transports.

Affects config::pt

rustls

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 tor-rtcompat

static = static-sqlite

depends directly on tor-rtcompat/static so native-tls doesn't get automatically included

Enables static of tor-rtcompat

static-sqlite static?

Enables static of tor-dirmgr

static-native-tls = native-tls

Enables static of tor-rtcompat

accel-sha1-asm

Enables with-sha1-asm of tor-llcrypto

accel-openssl

Enables with-openssl of tor-llcrypto

onion-service-client full? = tor-hsclient, tor-hscrypto

Affects config::vanguards

onion-service-service full? = keymgr, tor-hscrypto, tor-hsservice

Enables state-dir of tor-persist

tor-persist:

Enable the state_dir module

Affects config::onion_service, config::vanguards

keymgr full? onion-service-service?

Enables keymgr of tor-hsclient and tor-keymgr

compression default full?

Enables compression of tor-dirmgr

experimental = dirfilter, error_detail, experimental-api, geoip, rpc, vanguards

Enables experimental of tor-cell, tor-checkable, tor-circmgr, tor-config, tor-dirmgr, tor-guardmgr, tor-netdoc, and tor-proto

tor-circmgr:

Enable experimental APIs that are not yet officially supported.

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

experimental-api experimental?

Enable experimental APIs that are not yet officially supported.

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

dirfilter experimental?

Enables dirfilter of tor-dirmgr

error_detail experimental?
geoip experimental? = tor-geoip

Enables geoip of tor-circmgr and tor-dirmgr

rpc experimental? = tor-rpcbase
vanguards experimental?

Enables vanguards of tor-circmgr and tor-guardmgr

tor-circmgr:

Vanguards are experimental

Affects config::vanguards

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.

anyhow full?
tor-geoip geoip?
tor-hsclient keymgr? onion-service-client?
tor-hscrypto onion-service-client? onion-service-service?
tor-hsservice onion-service-service?
tor-ptmgr pt-client?
tor-rpcbase rpc?