summaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/Cargo.toml
blob: e353ecf086eeaf312deef65a2ea1130fa04d75df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[package]
name = "tor-netdoc"
version = "0.44.0"
authors = ["The Tor Project, Inc.", "Nick Mathewson <[email protected]>"]
edition = "2024"
rust-version = "1.91"
license = "MIT OR Apache-2.0"
homepage = "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home"
description = "Network document formats used with the Tor protocols."
keywords = ["tor", "arti"]
categories = ["parser-implementations"]
repository = "https://gitlab.torproject.org/tpo/core/arti.git/"

[features]
default = []

full = [
    "encode",
    "hs-client",
    "hs-service",
    "tor-basic-utils/full",
    "tor-bytes/full",
    "tor-cert/full",
    "tor-checkable/full",
    "tor-error/full",
    "tor-hscrypto?/full",
    "tor-linkspec?/full",
    "tor-llcrypto/full",
    "tor-protover/full",
    "tor-units?/full",
    "tor-cell/full",
    "web-time-compat/full",
]
experimental = [
    "build_docs",
    "experimental-api",
    "incomplete",
    "hs-dir",
    "hs-pow-full",
    "retain-unknown",
]

build_docs = ["__is_experimental"]
encode = []
incomplete = ["encode", "__is_experimental"]
testing = ["hex-literal", "visibility"]

# Client-side, directory-side, and service-side support for onion services.
# Experimental: not covered by semver guarantees.
# TODO hs: mark these as part of "full" once they are done and stable.
hs-dir = ["hs-common", "__is_experimental"]

# TODO unconditionally enable `hs-client` `hs-service` `hs-common` (de-cfg-gate all items).
# These are "document type" features in #2492's taxonomy but that ticket didn't mention them
# by name, so we should have another consensus call for those.
hs-client = ["hs-common"]
hs-service = ["hs-common", "encode"]
hs-common = ["tor-hscrypto", "tor-linkspec", "tor-units"]

hs-pow-full = ["tor-hscrypto/hs-pow-full", "__is_experimental"]
retain-unknown = ["__is_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".
experimental-api = ["testing", "__is_experimental"]

__is_experimental = []

[dependencies]
amplify = { version = "4", default-features = false, features = ["derive"] }
base64ct = { version = "1.5.1", features = ["alloc"] }
cipher = { version = "0.4.1", features = ["zeroize"] }
derive-deftly = { version = "~1.11.3", features = ["full", "beta"] }
derive_builder = { version = "0.11.2", package = "derive_builder_fork_arti" }
derive_more = { version = "2.1.1", features = ["full"] }
digest = "0.10.0"
educe = "0.4.22"
enumset = "1.1.10"
hex = "0.4"
hex-literal = { version = "1.0", optional = true }
hostname-validator = "1.1.1"
humantime = "2"
ipnet = "2"
itertools = "0.14.0"
memchr = "2.5"
paste = "1.0.3"
phf = { version = "0.13.1", features = ["macros"] }
rand = { version = "0.10.1" }
saturating-time = "0.4.0"
serde = { version = "1.0.103", features = ["derive"] }
serde_with = "3.0.0"
signature = "2"
smallvec = "1.10"
strum = { version = "0.28.0", features = ["derive"] }
subtle = "2"
thiserror = "2"
time = { version = "0.3.47", features = ["std", "parsing", "macros", "formatting"] }
tinystr = "0.8.0"
tor-basic-utils = { path = "../tor-basic-utils", version = "0.44.0" }
tor-bytes = { path = "../tor-bytes", version = "0.44.0" }
tor-cell = { path = "../tor-cell", version = "0.44.0" }
tor-cert = { path = "../tor-cert", version = "0.44.0" }
tor-checkable = { path = "../tor-checkable", version = "0.44.0" }
tor-error = { path = "../tor-error", version = "0.44.0" }
tor-hscrypto = { path = "../tor-hscrypto", version = "0.44.0", optional = true }
tor-linkspec = { path = "../tor-linkspec", version = "0.44.0", optional = true }
tor-llcrypto = { path = "../tor-llcrypto", version = "0.44.0" }
tor-protover = { path = "../tor-protover", version = "0.44.0", features = ["serde"] }
tor-units = { version = "0.44.0", path = "../tor-units", optional = true }
visibility = { version = "0.1.0", optional = true }
visible = { version = "0.0.1", optional = true }
void = "1"
web-time-compat = { version = "0.2.0", path = "../web-time-compat" }
zeroize = "1"

[dev-dependencies]
anyhow = "1.0.23"
assert_matches = "1.5.0"
hex-literal = "1.0"
imara-diff = "0.2.0"
itertools = "0.14.0"
pem = "3.0.6"
regex = "1"
serde_json = "1.0.50"
testresult = "0.4.1"
tor-basic-utils = { version = "0.44.0", path = "../tor-basic-utils" }

[package.metadata.docs.rs]
all-features = true