Cargo Features
[dependencies]
arti-client = { version = "0.24.0", default-features = false, features = ["full", "async-std", "bridge-client", "memquota", "tokio", "native-tls", "pt-client", "hs-pow-v1", "hs-pow", "testing", "rustls", "static", "static-sqlite", "static-native-tls", "accel-sha1-asm", "accel-openssl", "onion-service-client", "onion-service-service", "keymgr", "vanguards", "compression", "experimental", "experimental-api", "dirfilter", "ephemeral-keystore", "ctor-keystore", "error_detail", "geoip", "rpc", "restricted-discovery"] }
examples call TorClient::create_bootstrapped which needs PreferredRuntime @@ test-all-crates conditional-option minimal --features=tokio,native-tls
- default = compression, native-tls, tokio
-
These default features are set whenever
arti-client
is added without
somewhere in the dependency tree.default-features = false - full = anyhow, async-std, bridge-client, compression, keymgr, memquota, native-tls, onion-service-client, onion-service-service, pt-client, tokio, vanguards
-
"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-chanmgr, 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-memquota, tor-netdir, tor-netdoc, tor-persist, tor-proto, optional tor-ptmgr, optional tor-rpcbase, and tor-rtcompat
tor-memquota:
tor-memquota dependency is unconditional, but most of the code is behind tor-memquota/memquota
- 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.
- memquota full?
-
Enables memquota of tor-memquota
- 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
… - hs-pow-v1 hs-pow? hs-pow-full?
-
Onion service proof of work schemes (specific schemes, full set, default set)
Enables pow-v1 of optional tor-hsclient and optional tor-hsservice
- hs-pow-full hs-pow experimental? = hs-pow-v1
- testing experimental? = visibility
-
Expose interfaces useful for testing
- 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
- onion-service-service full? restricted-discovery? = keymgr, tor-hscrypto, tor-hsservice
-
Enables state-dir of tor-persist
tor-persist:
Enable the state_dir module
Affects
config::onion_service
… - keymgr full? onion-service-service?
-
Enables keymgr of tor-hsclient and tor-keymgr
- vanguards full?
-
Enables vanguards of tor-circmgr and tor-guardmgr
tor-guardmgr:
Vanguards support
- compression default full?
-
Enables compression of tor-dirmgr
- experimental = ctor-keystore, dirfilter, ephemeral-keystore, error_detail, experimental-api, geoip, hs-pow, hs-pow-full, restricted-discovery, rpc, testing
-
Enables experimental of tor-circmgr, tor-config, tor-dirmgr, tor-guardmgr, tor-hsservice, tor-keymgr, 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
- ephemeral-keystore experimental?
-
Enables ephemeral-keystore of tor-keymgr
- ctor-keystore experimental?
-
Enables ctor-keystore of tor-keymgr
- error_detail experimental?
- geoip experimental? = tor-geoip
-
Enables geoip of tor-circmgr and tor-dirmgr
- rpc experimental? = dyn-clone, tor-rpcbase
-
Affects
arti-client::rpc
… - restricted-discovery experimental? = onion-service-service
-
Enables restricted-discovery of tor-hsservice
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.