# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.89"
name = "arti-client"
version = "0.43.0"
authors = [
    "The Tor Project, Inc.",
    "Nick Mathewson <nickm@torproject.org>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Library for connecting to the Tor network as an anonymous client"
homepage = "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home"
readme = "README.md"
keywords = [
    "tor",
    "arti",
    "privacy",
    "anonymity",
    "networking",
]
categories = [
    "network-programming",
    "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 = [
    "tor-llcrypto/with-openssl",
    "__is_nonadditive",
]
accel-sha1-asm = [
    "tor-llcrypto/with-sha1-asm",
    "__is_nonadditive",
]
async-std = ["tor-rtcompat/async-std"]
bridge-client = [
    "tor-guardmgr/bridge-client",
    "tor-dirmgr/bridge-client",
]
compression = ["tor-dirmgr/compression"]
counter-galois-onion = [
    "tor-proto/counter-galois-onion",
    "flowctl-cc",
    "__is_experimental",
]
ctor-keystore = [
    "tor-keymgr/ctor-keystore",
    "__is_experimental",
]
default = [
    "tokio",
    "native-tls",
    "compression",
]
dirfilter = [
    "tor-dirmgr/dirfilter",
    "__is_experimental",
]
ephemeral-keystore = [
    "tor-keymgr/ephemeral-keystore",
    "__is_experimental",
]
error_detail = ["__is_experimental"]
experimental = [
    "dirfilter",
    "ephemeral-keystore",
    "ctor-keystore",
    "experimental-api",
    "error_detail",
    "geoip",
    "hs-pow-full",
    "testing",
    "tor-proto/experimental",
    "tor-netdoc/experimental",
    "tor-dirmgr/experimental",
    "tor-circmgr/experimental",
    "tor-config/experimental",
    "tor-guardmgr/experimental",
    "tor-hsservice/experimental",
    "tor-keymgr/experimental",
    "restricted-discovery",
    "onion-service-cli-extra",
    "counter-galois-onion",
    "smol",
]
experimental-api = ["__is_experimental"]
flowctl-cc = ["tor-circmgr/flowctl-cc"]
full = [
    "anyhow",
    "keymgr",
    "onion-service-client",
    "onion-service-service",
    "vanguards",
    "tokio",
    "async-std",
    "memquota",
    "native-tls",
    "compression",
    "bridge-client",
    "pt-client",
    "rpc",
    "flowctl-cc",
    "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-chanmgr/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",
    "tor-linkspec/full",
    "tor-geoip?/full",
    "tor-hsservice?/full",
    "tor-memquota/full",
    "tor-config-path/full",
    "tor-protover/full",
    "tor-dircommon/full",
    "web-time-compat/full",
]
geoip = [
    "tor-circmgr/geoip",
    "tor-dirmgr/geoip",
    "tor-geoip",
    "__is_experimental",
]
hs-pow-full = [
    "tor-hsclient?/hs-pow-full",
    "tor-hsservice?/hs-pow-full",
    "__is_experimental",
]
keymgr = [
    "tor-keymgr/keymgr",
    "tor-hsclient/keymgr",
]
memquota = []
native-tls = ["tor-rtcompat/native-tls"]
onion-service-cli-extra = [
    "tor-keymgr/onion-service-cli-extra",
    "__is_experimental",
]
onion-service-client = [
    "tor-hsclient",
    "tor-hscrypto",
]
onion-service-service = [
    "tor-hsservice",
    "tor-hscrypto",
    "tor-persist/state-dir",
    "keymgr",
]
pt-client = [
    "bridge-client",
    "tor-chanmgr/pt-client",
    "tor-guardmgr/pt-client",
    "tor-ptmgr",
]
restricted-discovery = [
    "onion-service-service",
    "tor-hsservice/restricted-discovery",
    "__is_experimental",
]
rpc = [
    "dyn-clone",
    "tor-rpcbase",
]
rustls = [
    "tor-rtcompat/rustls",
    "__is_nonadditive",
]
smol = [
    "tor-rtcompat/smol",
    "__is_experimental",
]
static = [
    "static-sqlite",
    "tor-rtcompat/static",
    "__is_nonadditive",
]
static-native-tls = [
    "tor-rtcompat/static",
    "native-tls",
    "__is_nonadditive",
]
static-sqlite = [
    "tor-dirmgr/static",
    "__is_nonadditive",
]
testing = [
    "__is_experimental",
    "visibility",
]
tokio = [
    "tor-rtcompat/tokio",
    "tor-proto/tokio",
]
vanguards = [
    "tor-guardmgr/vanguards",
    "tor-circmgr/vanguards",
]

[lib]
name = "arti_client"
path = "src/lib.rs"

[[example]]
name = "advanced_isolation"
path = "examples/advanced_isolation.rs"

[[example]]
name = "hook-tcp"
path = "examples/hook-tcp.rs"

[[example]]
name = "lazy-init"
path = "examples/lazy-init.rs"

[[example]]
name = "one_hop_circuit"
path = "examples/one_hop_circuit.rs"

[[example]]
name = "readme"
path = "examples/readme.rs"

[[example]]
name = "readme-with-report"
path = "examples/readme-with-report.rs"

[[example]]
name = "snowflake"
path = "examples/snowflake.rs"

[dependencies.anyhow]
version = "1.0.23"
optional = true

[dependencies.async-trait]
version = "0.1.54"

[dependencies.cfg-if]
version = "1.0.0"

[dependencies.derive-deftly]
version = "~1.11.0"
features = [
    "full",
    "beta",
]

[dependencies.derive_builder]
version = "0.11.2"
package = "derive_builder_fork_arti"

[dependencies.derive_more]
version = "2.0.1"
features = ["full"]

[dependencies.dyn-clone]
version = "1.0.11"
optional = true

[dependencies.educe]
version = "0.4.22"

[dependencies.fs-mistrust]
version = "0.14.2"
features = ["serde"]

[dependencies.futures]
version = "0.3.14"

[dependencies.hostname-validator]
version = "1.1.1"

[dependencies.humantime]
version = "2"

[dependencies.humantime-serde]
version = "1.1.1"

[dependencies.libc]
version = "0.2"

[dependencies.once_cell]
version = "1.9"

[dependencies.postage]
version = "0.5.0"
features = ["futures-traits"]
default-features = false

[dependencies.rand]
version = "0.10.1"

[dependencies.safelog]
version = "0.8.2"

[dependencies.serde]
version = "1.0.103"
features = ["derive"]

[dependencies.thiserror]
version = "2"

[dependencies.time]
version = "0.3.47"
features = [
    "parsing",
    "macros",
]

[dependencies.tor-async-utils]
version = "0.43.0"

[dependencies.tor-basic-utils]
version = "0.43.0"

[dependencies.tor-chanmgr]
version = "0.43.0"

[dependencies.tor-circmgr]
version = "0.43.0"

[dependencies.tor-config]
version = "0.43.0"

[dependencies.tor-config-path]
version = "0.43.0"
features = ["arti-client"]

[dependencies.tor-dircommon]
version = "0.43.0"

[dependencies.tor-dirmgr]
version = "0.43.0"
features = ["mmap"]
default-features = false

[dependencies.tor-error]
version = "0.43.0"
features = ["tracing"]

[dependencies.tor-geoip]
version = "0.43.0"
optional = true

[dependencies.tor-guardmgr]
version = "0.43.0"

[dependencies.tor-hsclient]
version = "0.43.0"
optional = true

[dependencies.tor-hscrypto]
version = "0.43.0"
optional = true

[dependencies.tor-hsservice]
version = "0.43.0"
optional = true

[dependencies.tor-keymgr]
version = "0.43.0"
default-features = false

[dependencies.tor-linkspec]
version = "0.43.0"

[dependencies.tor-llcrypto]
version = "0.43.0"

[dependencies.tor-memquota]
version = "0.43.0"

[dependencies.tor-netdir]
version = "0.43.0"

[dependencies.tor-netdoc]
version = "0.43.0"

[dependencies.tor-persist]
version = "0.43.0"

[dependencies.tor-proto]
version = "0.43.0"

[dependencies.tor-protover]
version = "0.43.0"

[dependencies.tor-ptmgr]
version = "0.43.0"
optional = true

[dependencies.tor-rpcbase]
version = "0.43.0"
optional = true

[dependencies.tor-rtcompat]
version = "0.43.0"

[dependencies.tracing]
version = "0.1.36"

[dependencies.visibility]
version = "0.1.0"
optional = true

[dependencies.void]
version = "1"

[dependencies.web-time-compat]
version = "0.1.0"

[dev-dependencies.anyhow]
version = "1.0.23"

[dev-dependencies.rand]
version = "0.10.1"

[dev-dependencies.serde_json]
version = "1.0.104"

[dev-dependencies.strum]
version = "0.28.0"
features = ["derive"]

[dev-dependencies.tokio-crate]
version = "1.7"
features = [
    "rt",
    "rt-multi-thread",
    "io-util",
    "net",
    "time",
    "macros",
]
package = "tokio"

[dev-dependencies.toml]
version = "1.0.3"

[dev-dependencies.tor-relay-selection]
version = "0.43.0"

[dev-dependencies.tor-rtcompat]
version = "0.43.0"
features = [
    "tokio",
    "native-tls",
]

[dev-dependencies.tracing-subscriber]
version = "0.3.20"

[dev-dependencies.tracing-test]
version = "0.2.4"

[target.'cfg(all(target_arch="wasm32", target_os="unknown"))'.dependencies.tor-persist]
version = "0.43.0"
features = ["testing"]

[target.'cfg(not(all(target_arch="wasm32", target_os="unknown")))'.dependencies.tempfile]
version = "3.3"
