[package]
name = "arti"
version = "1.1.1"
authors = ["The Tor Project, Inc.", "Nick Mathewson <nickm@torproject.org>"]
edition = "2021"
rust-version = "1.60"
license = "MIT OR Apache-2.0"
homepage = "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home"
description = "A rust implementation of the Tor privacy tools."
keywords = ["tor", "arti", "privacy", "anonymity"]
categories = ["command-line-utilities", "cryptography"]
repository = "https://gitlab.torproject.org/tpo/core/arti.git/"

[features]
default = [
    "tokio",
    "native-tls",
    "dns-proxy",
    "harden",
    "compression",
    "bridge-client",
    "pt-client",
]

full = [
    "async-std",
    "tokio",
    "native-tls",
    "journald",
    "arti-client/full",
    "dns-proxy",
    "harden",
    "compression",
    "bridge-client",
    "pt-client",
]

async-std = [
    "arti-client/async-std",
    "tor-rtcompat/async-std",
    "async-ctrlc",
    "once_cell",
    "signal-hook",
    "signal-hook-async-std",
]
bridge-client = ["arti-client/bridge-client"]
dns-proxy = ["trust-dns-proto"]
experimental-api = ["visibility"]
harden = ["secmem-proc"]
tokio = ["tokio-crate", "arti-client/tokio", "tor-rtcompat/tokio"]
native-tls = ["arti-client/native-tls", "tor-rtcompat/native-tls"]
pt-client = ["bridge-client", "arti-client/pt-client"]
rustls = ["arti-client/rustls", "tor-rtcompat/rustls"]
# depends directly on arti-client/static so native-tls doesn't get automatically included
static = ["arti-client/static"]
static-sqlite = ["arti-client/static-sqlite"]
static-native-tls = ["arti-client/static-native-tls", "native-tls"]
journald = ["tracing-journald"]

accel-sha1-asm = ["arti-client/accel-sha1-asm"]
accel-openssl = ["arti-client/accel-openssl"]

compression = ["arti-client/compression"]

# This feature flag enables experimental features that are not supported. Turning it on may
# void your API.
experimental = ["arti-client/experimental", "experimental-api"]

[dependencies]
anyhow = "1.0.23"
arti-client = { package = "arti-client", path = "../arti-client", version = "0.8.1", default-features = false }
async-ctrlc = { version = "1.2.0", optional = true }
cfg-if = "1.0.0"
clap = "3.2.20"
config = { version = "0.13", default-features = false, features = ["toml"] }
derive_builder = { version = "0.11", package = "derive_builder_fork_arti" }
educe = "0.4.6"
fs-mistrust = { path = "../fs-mistrust", version = "0.6.0" }
futures = "0.3.14"
itertools = "0.10.1"
libc = "0.2"
notify = { version = "5.0", default-features = false, features = ["macos_kqueue"] }
once_cell = { version = "1", optional = true }
paste = "1"
rlimit = "0.9.0"
safelog = { path = "../safelog", version = "0.2.1" }
secmem-proc = { version = "0.2.0", optional = true }
serde = { version = "1.0.103", features = ["derive"] }
signal-hook = { version = "0.3", optional = true }
signal-hook-async-std = { version = "0.2", optional = true }
tokio-crate = { package = "tokio", version = "1.7", optional = true, features = ["signal"] }
tor-config = { path = "../tor-config", version = "0.7.1" }
tor-error = { path = "../tor-error", version = "0.4.1", default-features = false }
tor-rtcompat = { path = "../tor-rtcompat", version = "0.8.1", default-features = false }
tor-socksproto = { path = "../tor-socksproto", version = "0.6.1" }
tracing = "0.1.18"
tracing-appender = "0.2.0"
tracing-journald = { version = "0.3.0", optional = true }
tracing-subscriber = { version = "0.3.0", features = ["env-filter"] }
trust-dns-proto = { version = "0.22.0", optional = true }
visibility = { version = "0.0.1", optional = true }

[dev-dependencies]
itertools = "0.10.1"
regex = { version = "1", default-features = false, features = ["std"] }
serde_json = "1.0.50"
toml = "0.6.0"

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3.8", features = ["winerror"] }
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
