[package]
edition = "2024"
rust-version = "1.89"
name = "arti"
version = "2.2.0"
authors = [
"The Tor Project, Inc.",
"Nick Mathewson <nickm@torproject.org>",
]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A rust implementation of the Tor privacy tools."
homepage = "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home"
readme = "README.md"
keywords = [
"tor",
"arti",
"privacy",
"anonymity",
]
categories = [
"command-line-utilities",
"cryptography",
]
license = "MIT OR Apache-2.0"
repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
[package.metadata.docs.rs]
all-features = true
[features]
__is_experimental = []
__is_nonadditive = []
accel-openssl = [
"arti-client/accel-openssl",
"__is_nonadditive",
]
accel-sha1-asm = [
"arti-client/accel-sha1-asm",
"__is_nonadditive",
]
async-std = [
"arti-client/async-std",
"tor-rtcompat/async-std",
"async-ctrlc",
"async-signal",
]
bridge-client = ["arti-client/bridge-client"]
compression = ["arti-client/compression"]
counter-galois-onion = [
"arti-client/counter-galois-onion",
"flowctl-cc",
"__is_experimental",
]
ctor-keystore = [
"arti-client/ctor-keystore",
"__is_experimental",
]
default = [
"default-runtime",
"dns-proxy",
"harden",
"compression",
"bridge-client",
"pt-client",
"onion-service-client",
"vanguards",
]
default-runtime = [
"tokio",
"native-tls",
]
derive-deftly = []
dns-proxy = ["hickory-proto"]
experimental = [
"arti-client/experimental",
"experimental-api",
"hs-pow-full",
"keymgr",
"metrics",
"hsc",
"tor-hsservice/experimental",
"ctor-keystore",
"onion-service-cli-extra",
"flowctl-cc",
"counter-galois-onion",
"opentelemetry",
"tokio-console",
]
experimental-api = [
"arti-client/experimental-api",
"visibility",
"__is_experimental",
]
flowctl-cc = [
"arti-client/flowctl-cc",
"__is_experimental",
]
full = [
"default-runtime",
"onion-service-client",
"onion-service-service",
"vanguards",
"async-std",
"tokio",
"native-tls",
"journald",
"arti-client/full",
"dns-proxy",
"harden",
"compression",
"bridge-client",
"pt-client",
"restricted-discovery",
"arti-rpcserver?/full",
"fs-mistrust/full",
"rpc",
"http-connect",
"safelog/full",
"tor-config/full",
"tor-error/full",
"tor-rtcompat/full",
"tor-socksproto/full",
"tor-rpcbase?/full",
"tor-hsrproxy?/full",
"tor-hsservice?/full",
"tor-async-utils/full",
"tor-config-path/full",
"tor-basic-utils/full",
"tor-rpc-connect?/full",
"tor-key-forge/full",
"tor-keymgr/full",
"tor-hscrypto?/full",
"tor-cell?/full",
"tor-hsclient?/full",
"tor-proto/full",
"futures-copy/full",
"tor-general-addr/full",
"tor-log-ratelim/full",
"web-time-compat/full",
]
harden = ["secmem-proc"]
hs-pow-full = [
"arti-client/hs-pow-full",
"__is_experimental",
]
hsc = [
"onion-service-client",
"experimental-api",
"keymgr",
"__is_experimental",
]
http-connect = [
"base64ct",
"http",
"hyper",
"tor-error/http",
"tor-cell",
]
journald = ["tracing-journald"]
keymgr = [
"arti-client/keymgr",
"__is_experimental",
]
metrics = [
"dep:metrics-exporter-prometheus",
"tor-hsservice?/metrics",
"tor-hsrproxy?/metrics",
"__is_experimental",
]
native-tls = [
"arti-client/native-tls",
"tor-rtcompat/native-tls",
]
onion-service-cli-extra = [
"arti-client/onion-service-cli-extra",
"arti-client/experimental-api",
"tor-hsservice/onion-service-cli-extra",
"tor-hsclient",
"tor-hscrypto",
"__is_experimental",
]
onion-service-client = ["arti-client/onion-service-client"]
onion-service-service = [
"arti-client/onion-service-service",
"tor-hsrproxy",
"tor-hsservice",
]
opentelemetry = [
"tracing-opentelemetry",
"dep:opentelemetry",
"opentelemetry_sdk",
"opentelemetry-otlp",
"opentelemetry-appender-tracing",
"opentelemetry-proto",
"__is_experimental",
]
pt-client = [
"bridge-client",
"arti-client/pt-client",
]
restricted-discovery = ["tor-hsservice/restricted-discovery"]
rpc = [
"arti-rpcserver",
"tor-rpcbase",
"tor-rpc-connect",
"arti-client/rpc",
"derive-deftly",
]
rustls = [
"arti-client/rustls",
"tor-rtcompat/rustls",
"rustls-crate",
"__is_nonadditive",
]
static = [
"arti-client/static",
"__is_nonadditive",
]
static-native-tls = [
"arti-client/static-native-tls",
"native-tls",
"__is_nonadditive",
]
static-sqlite = [
"arti-client/static-sqlite",
"__is_nonadditive",
]
tokio = [
"tokio-crate",
"arti-client/tokio",
"tor-rtcompat/tokio",
"tokio-util",
]
tokio-console = [
"dep:console-subscriber",
"__is_experimental",
]
vanguards = ["arti-client/vanguards"]
[lib]
name = "arti"
path = "src/lib.rs"
[[bin]]
name = "arti"
path = "src/main.rs"
[[test]]
name = "cli_tests"
path = "tests/cli_tests/main.rs"
[dependencies.anyhow]
version = "1.0.23"
[dependencies.arti-client]
version = "0.41.0"
features = ["anyhow"]
default-features = false
package = "arti-client"
[dependencies.arti-rpcserver]
version = "0.41.0"
optional = true
[dependencies.async-ctrlc]
version = "1.2.0"
optional = true
[dependencies.async-signal]
version = "0.2.10"
optional = true
[dependencies.base64ct]
version = "1.5.1"
optional = true
[dependencies.cfg-if]
version = "1.0.0"
[dependencies.clap]
version = "4.3.24"
features = [
"string",
"wrap_help",
"derive",
]
[dependencies.console-subscriber]
version = "0.5.0"
optional = true
[dependencies.derive-deftly]
version = "~1.6.0"
features = [
"full",
"beta",
]
[dependencies.derive_builder]
version = "0.11"
package = "derive_builder_fork_arti"
[dependencies.fs-mistrust]
version = "0.14.0"
[dependencies.futures]
version = "0.3.14"
[dependencies.futures-copy]
version = "0.3.0"
[dependencies.hickory-proto]
version = "0.25.2"
optional = true
[dependencies.http]
version = "1.3.1"
optional = true
[dependencies.humantime]
version = "2"
[dependencies.humantime-serde]
version = "1.1.1"
[dependencies.hyper]
version = "1.7"
features = [
"http1",
"server",
]
optional = true
[dependencies.itertools]
version = "0.14.0"
[dependencies.libc]
version = "0.2"
[dependencies.metrics-exporter-prometheus]
version = "0.18.0"
features = ["http-listener"]
optional = true
default-features = false
[dependencies.notify]
version = "8"
features = ["macos_kqueue"]
default-features = false
[dependencies.opentelemetry]
version = "0.31.0"
optional = true
[dependencies.opentelemetry-appender-tracing]
version = "0.31.1"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31.0"
optional = true
[dependencies.opentelemetry-proto]
version = "0.31.0"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.31.0"
features = ["rt-tokio"]
optional = true
[dependencies.paste]
version = "1.0.3"
[dependencies.pin-project]
version = "1"
[dependencies.postage]
version = "0.5.0"
features = ["futures-traits"]
default-features = false
[dependencies.rustls-crate]
version = "0.23.5"
features = [
"logging",
"ring",
]
optional = true
default-features = false
package = "rustls"
[dependencies.safelog]
version = "0.8.1"
[dependencies.secmem-proc]
version = "0.3.4"
optional = true
[dependencies.serde]
version = "1.0.103"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.50"
[dependencies.thiserror]
version = "2"
[dependencies.time]
version = "0.3.47"
[dependencies.tokio-crate]
version = "1.7"
features = ["signal"]
optional = true
package = "tokio"
[dependencies.tokio-util]
version = "0.7.0"
features = ["compat"]
optional = true
[dependencies.toml]
version = "1.0.3"
[dependencies.tor-async-utils]
version = "0.41.0"
[dependencies.tor-basic-utils]
version = "0.41.0"
[dependencies.tor-cell]
version = "0.41.0"
optional = true
[dependencies.tor-config]
version = "0.41.0"
[dependencies.tor-config-path]
version = "0.41.0"
[dependencies.tor-error]
version = "0.41.0"
features = ["tracing"]
default-features = false
[dependencies.tor-general-addr]
version = "0.41.0"
[dependencies.tor-hsclient]
version = "0.41.0"
optional = true
[dependencies.tor-hscrypto]
version = "0.41.0"
optional = true
[dependencies.tor-hsrproxy]
version = "0.41.0"
optional = true
[dependencies.tor-hsservice]
version = "0.41.0"
optional = true
[dependencies.tor-key-forge]
version = "0.41.0"
[dependencies.tor-keymgr]
version = "0.41.0"
[dependencies.tor-log-ratelim]
version = "0.41.0"
[dependencies.tor-proto]
version = "0.41.0"
[dependencies.tor-rpc-connect]
version = "0.41.0"
features = ["rpc-server"]
optional = true
[dependencies.tor-rpcbase]
version = "0.41.0"
optional = true
[dependencies.tor-rtcompat]
version = "0.41.0"
default-features = false
[dependencies.tor-socksproto]
version = "0.41.0"
[dependencies.tracing]
version = "0.1.36"
[dependencies.tracing-appender]
version = "0.2.0"
[dependencies.tracing-journald]
version = "0.3.0"
optional = true
[dependencies.tracing-opentelemetry]
version = "0.32.0"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.20"
features = ["env-filter"]
[dependencies.visibility]
version = "0.1.0"
optional = true
[dependencies.web-time-compat]
version = "0.1.0"
[dev-dependencies.amplify]
version = "4"
features = ["derive"]
default-features = false
[dev-dependencies.arti-client]
version = "0.41.0"
features = ["testing"]
default-features = false
package = "arti-client"
[dev-dependencies.assert_cmd]
version = "2.1.1"
[dev-dependencies.derive_more]
version = "2.0.1"
features = ["full"]
[dev-dependencies.itertools]
version = "0.14.0"
[dev-dependencies.postage]
version = "0.5.0"
features = ["futures-traits"]
default-features = false
[dev-dependencies.regex]
version = "1"
features = ["std"]
default-features = false
[dev-dependencies.serde_json]
version = "1.0.50"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.test-temp-dir]
version = "0.7.0"
[dev-dependencies.tor-async-utils]
version = "0.41.0"
[dev-dependencies.tor-config]
version = "0.41.0"
features = ["testing"]
[dev-dependencies.tor-memquota]
version = "0.41.0"
features = ["testing"]
default-features = false
[dev-dependencies.tor-rtmock]
version = "0.41.0"
[dev-dependencies.trycmd]
version = "1.0.0"
[dev-dependencies.walkdir]
version = "2"
[target.'cfg(not(all(target_arch="wasm32", target_os="unknown")))'.dependencies.rlimit]
version = "0.11.0"
[target."cfg(windows)".dependencies.winapi]
version = "0.3.8"
features = ["winerror"]