[package] name = "arti-client" version = "0.10.0" authors = ["The Tor Project, Inc.", "Nick Mathewson "] edition = "2021" rust-version = "1.65" license = "MIT OR Apache-2.0" homepage = "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home" description = "Library for connecting to the Tor network as an anonymous client" keywords = ["tor", "arti", "privacy", "anonymity", "networking"] categories = ["network-programming", "cryptography"] repository = "https://gitlab.torproject.org/tpo/core/arti.git/" [features] default = ["tokio", "native-tls", "compression"] # "full" is a top-level selector that turns on every feature, _EXCEPT FOR_: # * 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. full = [ "onion-service-client", "tokio", "async-std", "native-tls", "compression", "bridge-client", "pt-client", "tor-rtcompat/full", "tor-proto/full", "tor-netdoc/full", "tor-dirmgr/full", "fs-mistrust/full", "safelog/full", "tor-async-utils/full", "tor-basic-utils/full", "tor-cell/full", "tor-chanmgr/full", "tor-checkable/full", "tor-circmgr/full", "tor-config/full", "tor-error/full", "tor-guardmgr/full", "tor-hsclient?/full", "tor-hscrypto?/full", "tor-llcrypto/full", "tor-netdir/full", "tor-persist/full", "tor-ptmgr?/full", "tor-rpcbase?/full", "tor-keymgr/full", ] async-std = ["tor-rtcompat/async-std"] bridge-client = ["tor-guardmgr/bridge-client", "tor-dirmgr/bridge-client"] tokio = ["tor-rtcompat/tokio", "tor-proto/tokio"] native-tls = ["tor-rtcompat/native-tls"] pt-client = ["bridge-client", "tor-chanmgr/pt-client", "tor-guardmgr/pt-client", "tor-ptmgr"] # 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. rustls = ["tor-rtcompat/rustls", "__is_nonadditive"] # depends directly on tor-rtcompat/static so native-tls doesn't get automatically included static = ["static-sqlite", "tor-rtcompat/static", "__is_nonadditive"] static-sqlite = ["tor-dirmgr/static", "__is_nonadditive"] static-native-tls = ["tor-rtcompat/static", "native-tls", "__is_nonadditive"] accel-sha1-asm = ["tor-llcrypto/with-sha1-asm", "__is_nonadditive"] accel-openssl = ["tor-llcrypto/with-openssl", "__is_nonadditive"] __is_nonadditive = [] compression = ["tor-dirmgr/compression"] experimental = [ "dirfilter", "experimental-api", "error_detail", "rpc", "tor-proto/experimental", "tor-cell/experimental", "tor-checkable/experimental", "tor-netdoc/experimental", "tor-dirmgr/experimental", "tor-circmgr/experimental", "tor-config/experimental", "keymgr", ] # 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 = ["__is_experimental"] dirfilter = ["tor-dirmgr/dirfilter", "__is_experimental"] error_detail = ["__is_experimental"] onion-service-client = ["tor-hsclient", "tor-hscrypto"] rpc = ["tor-rpcbase", "__is_experimental"] keymgr = ["tor-keymgr/keymgr", "tor-hsclient/keymgr", "__is_experimental"] __is_experimental = [] [dependencies] cfg-if = "1.0.0" derive_builder = { version = "0.11.2", package = "derive_builder_fork_arti" } derive_more = "0.99.3" directories = "5" educe = "0.4.6" fs-mistrust = { path = "../fs-mistrust", version = "0.7.3", features = ["serde"] } futures = "0.3.14" hostname-validator = "1.1.1" humantime-serde = "1.1.1" libc = "0.2" pin-project = "1" postage = { version = "0.5.0", default-features = false, features = ["futures-traits"] } safelog = { path = "../safelog", version = "0.3.2" } serde = { version = "1.0.103", features = ["derive"] } thiserror = "1" tor-async-utils = { path = "../tor-async-utils", version = "0.1.1" } tor-basic-utils = { path = "../tor-basic-utils", version = "0.7.3" } tor-cell = { path = "../tor-cell", version = "0.12.0" } tor-chanmgr = { path = "../tor-chanmgr", version = "0.10.0" } tor-checkable = { path = "../tor-checkable", version = "0.5.3" } tor-circmgr = { path = "../tor-circmgr", version = "0.10.0" } tor-config = { path = "../tor-config", version = "0.9.3" } tor-dirmgr = { path = "../tor-dirmgr", version = "0.11.0", default-features = false, features = ["mmap"] } tor-error = { path = "../tor-error", version = "0.5.3", features = ["tracing"] } tor-guardmgr = { path = "../tor-guardmgr", version = "0.10.0" } tor-hsclient = { path = "../tor-hsclient", version = "0.4.0", optional = true } tor-hscrypto = { path = "../tor-hscrypto", version = "0.3.0", optional = true } tor-keymgr = { path = "../tor-keymgr", version = "0.2.0", default-features = false } tor-linkspec = { path = "../tor-linkspec", version = "0.8.1" } tor-llcrypto = { path = "../tor-llcrypto", version = "0.5.2" } tor-netdir = { path = "../tor-netdir", version = "0.9.3" } tor-netdoc = { path = "../tor-netdoc", version = "0.8.2" } tor-persist = { path = "../tor-persist", version = "0.7.3" } tor-proto = { path = "../tor-proto", version = "0.12.0" } tor-ptmgr = { path = "../tor-ptmgr", version = "0.4.1", optional = true } tor-rpcbase = { path = "../tor-rpcbase", version = "0.1.2", optional = true } tor-rtcompat = { path = "../tor-rtcompat", version = "0.9.1" } tracing = "0.1.36" void = "1" [dev-dependencies] anyhow = "1.0.23" once_cell = "1.9" pin-project = "1" strum = { version = "0.25", features = ["derive"] } tempfile = "3.3" tokio-crate = { package = "tokio", version = "1.7", features = [ "rt", "rt-multi-thread", "io-util", "net", "time", "macros", ] } tokio-util = { version = "0.7.0", features = ["compat"] } toml = "0.7.2" tor-rtcompat = { path = "../tor-rtcompat", version = "0.9.1", features = ["tokio", "native-tls"] } tracing-subscriber = "0.3.0" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]