summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/arti-client/Cargo.toml6
-rw-r--r--crates/arti-relay/Cargo.toml1
-rw-r--r--crates/arti-rpc-client-core/Cargo.toml2
-rw-r--r--crates/arti/Cargo.toml4
-rw-r--r--crates/tor-bytes/Cargo.toml2
-rw-r--r--crates/tor-cell/Cargo.toml13
-rw-r--r--crates/tor-chanmgr/Cargo.toml1
-rw-r--r--crates/tor-circmgr/Cargo.toml1
-rw-r--r--crates/tor-config/Cargo.toml2
-rw-r--r--crates/tor-hsclient/Cargo.toml8
-rw-r--r--crates/tor-hscrypto/Cargo.toml12
-rw-r--r--crates/tor-hscrypto/README.md15
-rw-r--r--crates/tor-hsservice/Cargo.toml11
-rw-r--r--crates/tor-linkspec/Cargo.toml1
-rw-r--r--crates/tor-llcrypto/Cargo.toml2
-rw-r--r--crates/tor-memquota/Cargo.toml1
-rw-r--r--crates/tor-netdoc/Cargo.toml6
-rw-r--r--crates/tor-proto/Cargo.toml1
-rw-r--r--crates/tor-rtcompat/Cargo.toml2
-rw-r--r--crates/tor-rtmock/Cargo.toml2
-rw-r--r--crates/tor-socksproto/Cargo.toml2
-rw-r--r--crates/tor-units/Cargo.toml2
22 files changed, 72 insertions, 25 deletions
diff --git a/crates/arti-client/Cargo.toml b/crates/arti-client/Cargo.toml
index 25577426e..df08eabea 100644
--- a/crates/arti-client/Cargo.toml
+++ b/crates/arti-client/Cargo.toml
@@ -53,6 +53,7 @@ full = [
"tor-linkspec/full",
"tor-geoip?/full",
"tor-hsservice?/full",
+ "tor-memquota/full",
] # "full" is a top-level selector that turns on every feature, _EXCEPT FOR_:
# * Features that are experimental or unstable
# * Features that are testing-only
@@ -69,8 +70,8 @@ pt-client = ["bridge-client", "tor-chanmgr/pt-client", "tor-guardmgr/pt-client",
# Onion service proof of work schemes (specific schemes, full set, default set)
hs-pow-v1 = ["tor-hsclient?/pow-v1", "tor-hsservice?/pow-v1"]
-hs-pow-full = ["hs-pow-v1"]
-hs-pow = ["hs-pow-v1"]
+hs-pow-full = ["hs-pow-v1", "__is_experimental"]
+hs-pow = ["hs-pow-v1", "__is_experimental"]
# Expose interfaces useful for testing
testing = ["__is_experimental", "visibility"]
@@ -105,6 +106,7 @@ experimental = [
"error_detail",
"geoip",
"hs-pow",
+ "hs-pow-full",
"rpc",
"testing",
"tor-proto/experimental",
diff --git a/crates/arti-relay/Cargo.toml b/crates/arti-relay/Cargo.toml
index c88eb2001..37fdb85a9 100644
--- a/crates/arti-relay/Cargo.toml
+++ b/crates/arti-relay/Cargo.toml
@@ -28,6 +28,7 @@ full = [
"tor-proto/full",
"tor-relay-crypto/full",
"tor-rtcompat/full",
+ "tor-memquota/full",
]
async-std = ["tor-rtcompat/async-std"]
diff --git a/crates/arti-rpc-client-core/Cargo.toml b/crates/arti-rpc-client-core/Cargo.toml
index c86a27d4a..b8fe6dadd 100644
--- a/crates/arti-rpc-client-core/Cargo.toml
+++ b/crates/arti-rpc-client-core/Cargo.toml
@@ -38,7 +38,7 @@ socketpair = "0.19"
tor-basic-utils = { path = "../tor-basic-utils", version = "0.23.0" }
[features]
-full = ["ffi", "caret/full", "tor-socksproto/full"]
+full = ["ffi", "caret/full", "tor-socksproto/full", "tor-error/full"]
ffi = ["paste"]
[package.metadata.docs.rs]
diff --git a/crates/arti/Cargo.toml b/crates/arti/Cargo.toml
index 6f0902519..d7723fbb1 100644
--- a/crates/arti/Cargo.toml
+++ b/crates/arti/Cargo.toml
@@ -27,6 +27,7 @@ default = [
]
full = [
+ "default-runtime",
"memquota",
"onion-service-client",
"onion-service-service",
@@ -67,7 +68,7 @@ native-tls = ["arti-client/native-tls", "tor-rtcompat/native-tls"]
onion-service-client = ["arti-client/onion-service-client"]
onion-service-service = ["arti-client/onion-service-service", "tor-hsrproxy", "tor-hsservice"]
vanguards = ["arti-client/vanguards"]
-hs-pow = ["arti-client/hs-pow"]
+hs-pow = ["arti-client/hs-pow", "__is_experimental"]
pt-client = ["bridge-client", "arti-client/pt-client"]
ctor-keystore = ["arti-client/ctor-keystore", "__is_experimental"]
@@ -100,6 +101,7 @@ experimental = [
"rpc",
"hsc",
"tor-hsservice/experimental",
+ "ctor-keystore",
]
rpc = ["arti-rpcserver", "tor-rpcbase", "derive-deftly", "__is_experimental"]
diff --git a/crates/tor-bytes/Cargo.toml b/crates/tor-bytes/Cargo.toml
index b8dd35b00..ac2e58e15 100644
--- a/crates/tor-bytes/Cargo.toml
+++ b/crates/tor-bytes/Cargo.toml
@@ -30,7 +30,7 @@ getrandom = { version = "0.2.3", features = ["js"] }
[features]
default = ["tor-llcrypto"]
-full = ["tor-error/full", "tor-llcrypto/full", "safelog/full"]
+full = ["tor-error/full", "tor-llcrypto/full", "safelog/full", "tor-llcrypto?/full"]
[package.metadata.docs.rs]
all-features = true
diff --git a/crates/tor-cell/Cargo.toml b/crates/tor-cell/Cargo.toml
index 18fb64011..3b790a4e7 100644
--- a/crates/tor-cell/Cargo.toml
+++ b/crates/tor-cell/Cargo.toml
@@ -14,7 +14,13 @@ repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
[features]
default = []
-experimental = ["experimental-udp", "hs", "testing"]
+experimental = [
+ "experimental-udp",
+ "hs",
+ "hs-pow-full",
+ "hs-pow-v1",
+ "testing",
+]
# Enable experimental UDP support.
experimental-udp = ["__is_experimental"]
@@ -25,8 +31,8 @@ hs = ["tor-hscrypto", "__is_experimental"]
testing = ["experimental-udp", "__is_experimental"]
# Onion service proof of work schemes
-hs-pow-v1 = ["tor-hscrypto/pow-v1"]
-hs-pow-full = ["hs-pow-v1"]
+hs-pow-v1 = ["tor-hscrypto/pow-v1", "__is_experimental"]
+hs-pow-full = ["hs-pow-v1", "__is_experimental"]
full = [
"caret/full",
@@ -38,6 +44,7 @@ full = [
"tor-linkspec/full",
"tor-llcrypto/full",
"tor-units/full",
+ "tor-memquota/full",
]
__is_experimental = []
diff --git a/crates/tor-chanmgr/Cargo.toml b/crates/tor-chanmgr/Cargo.toml
index 812addbcd..50c4a3401 100644
--- a/crates/tor-chanmgr/Cargo.toml
+++ b/crates/tor-chanmgr/Cargo.toml
@@ -31,6 +31,7 @@ full = [
"tor-units/full",
"tor-async-utils/full",
"oneshot-fused-workaround/full",
+ "tor-memquota/full",
]
pt-client = ["tor-linkspec/pt-client"]
diff --git a/crates/tor-circmgr/Cargo.toml b/crates/tor-circmgr/Cargo.toml
index 244aa6ea1..77e8e58c5 100644
--- a/crates/tor-circmgr/Cargo.toml
+++ b/crates/tor-circmgr/Cargo.toml
@@ -37,6 +37,7 @@ full = [
"tor-protover/full",
"tor-relay-selection/full",
"oneshot-fused-workaround/full",
+ "tor-memquota/full",
]
specific-relay = []
vanguards = ["tor-guardmgr/vanguards"]
diff --git a/crates/tor-config/Cargo.toml b/crates/tor-config/Cargo.toml
index ca8a659fa..9c0cfc411 100644
--- a/crates/tor-config/Cargo.toml
+++ b/crates/tor-config/Cargo.toml
@@ -14,7 +14,7 @@ repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
[features]
default = ["expand-paths"]
-full = ["expand-paths", "fs-mistrust/full", "tor-basic-utils/full", "tor-error/full", "tor-rtcompat/full"]
+full = ["expand-paths", "fs-mistrust/full", "tor-basic-utils/full", "tor-error/full", "tor-rtcompat/full", "tor-config-path/full"]
experimental = ["testing", "experimental-api"]
# Enable experimental APIs that are not yet officially supported.
diff --git a/crates/tor-hsclient/Cargo.toml b/crates/tor-hsclient/Cargo.toml
index ef32912b7..f0aa07848 100644
--- a/crates/tor-hsclient/Cargo.toml
+++ b/crates/tor-hsclient/Cargo.toml
@@ -17,8 +17,8 @@ default = []
keymgr = ["tor-keymgr/keymgr", "__is_experimental"]
# Onion service proof of work schemes
-pow-v1 = ["tor-hscrypto/pow-v1", "tor-netdoc/hs-pow-v1", "tor-cell/hs-pow-v1"]
-pow-full = ["pow-v1"]
+pow-v1 = ["tor-hscrypto/pow-v1", "tor-netdoc/hs-pow-v1", "tor-cell/hs-pow-v1", "__is_experimental"]
+pow-full = ["pow-v1", "__is_experimental"]
full = [
"retry-error/full",
@@ -42,9 +42,11 @@ full = [
"tor-async-utils/full",
"tor-persist/full",
"oneshot-fused-workaround/full",
+ "slotmap-careful/full",
+ "tor-memquota/full",
]
__is_experimental = []
-experimental = ["keymgr"]
+experimental = ["keymgr", "pow-full", "pow-v1"]
[dependencies]
async-trait = "0.1.54"
diff --git a/crates/tor-hscrypto/Cargo.toml b/crates/tor-hscrypto/Cargo.toml
index d6f879092..bc84a9d07 100644
--- a/crates/tor-hscrypto/Cargo.toml
+++ b/crates/tor-hscrypto/Cargo.toml
@@ -17,8 +17,8 @@ memquota-memcost = ["derive-deftly", "tor-memquota", "tor-units/memquota-memcost
ope = ["cipher", "zeroize"]
# Onion service proof of work schemes
-pow-v1 = ["arrayvec", "blake2", "equix"]
-pow-full = ["pow-v1"]
+pow-v1 = ["arrayvec", "blake2", "equix", "__is_experimental"]
+pow-full = ["pow-v1", "__is_experimental"]
full = [
"memquota-memcost",
@@ -29,8 +29,16 @@ full = [
"tor-llcrypto/full",
"tor-units/full",
"tor-error/full",
+ "equix?/full",
+ "tor-memquota?/full",
]
+experimental = [
+ "pow-full",
+ "pow-v1",
+]
+__is_experimental = []
+
[dependencies]
arrayvec = { version = "0.7.4", optional = true }
blake2 = { version = "0.10.6", optional = true }
diff --git a/crates/tor-hscrypto/README.md b/crates/tor-hscrypto/README.md
index 3a8036be8..91b563a41 100644
--- a/crates/tor-hscrypto/README.md
+++ b/crates/tor-hscrypto/README.md
@@ -32,12 +32,25 @@ onion services.
* `ope` -- support for Order Preserving Encryption
+* `full` -- Enable all features above.
+
+### Experimental and unstable features
+
+Note that the APIs enabled by these features are NOT covered by
+semantic versioning[^1] guarantees: we might break them or remove
+them between patch versions.
+
* `pow-v1` -- Tor Hidden Services Proof of Work (`v1` scheme only)
* `pow-full` -- Tor Hidden Services Proof of Work
(metafeature, enables all non-experimental schemes: currently, implies only `pow-v1`).
-* `full` -- Enable all features above.
+* `experimental`: Enable all the above experimental features.
+
+[^1]: Remember, semantic versioning is what makes various `cargo`
+features work reliably. To be explicit: if you want `cargo update`
+to _only_ make safe changes, then you cannot enable these
+features.
## License
diff --git a/crates/tor-hsservice/Cargo.toml b/crates/tor-hsservice/Cargo.toml
index 6aea20af9..b2e8251f3 100644
--- a/crates/tor-hsservice/Cargo.toml
+++ b/crates/tor-hsservice/Cargo.toml
@@ -18,8 +18,8 @@ repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
default = []
# Onion service proof of work schemes
-pow-v1 = ["tor-hscrypto/pow-v1", "tor-netdoc/hs-pow-v1", "tor-cell/hs-pow-v1"]
-pow-full = ["pow-v1"]
+pow-v1 = ["tor-hscrypto/pow-v1", "tor-netdoc/hs-pow-v1", "tor-cell/hs-pow-v1", "__is_experimental"]
+pow-full = ["pow-v1", "__is_experimental"]
full = [
"tor-circmgr/full",
@@ -53,7 +53,12 @@ full = [
#
# These APIs are not covered by semantic versioning. Using this
# feature voids your "semver warrantee".
-experimental = ["experimental-api", "restricted-discovery"]
+experimental = [
+ "experimental-api",
+ "pow-full",
+ "pow-v1",
+ "restricted-discovery",
+]
experimental-api = ["restricted-discovery", "__is_experimental"]
restricted-discovery = ["__is_experimental"]
diff --git a/crates/tor-linkspec/Cargo.toml b/crates/tor-linkspec/Cargo.toml
index 7452e1f18..091d3d3e1 100644
--- a/crates/tor-linkspec/Cargo.toml
+++ b/crates/tor-linkspec/Cargo.toml
@@ -22,6 +22,7 @@ full = [
"tor-config/full",
"tor-llcrypto/full",
"tor-protover/full",
+ "tor-memquota/full",
]
experimental = ["decode", "verbatim"]
pt-client = []
diff --git a/crates/tor-llcrypto/Cargo.toml b/crates/tor-llcrypto/Cargo.toml
index cf077cef1..32817c404 100644
--- a/crates/tor-llcrypto/Cargo.toml
+++ b/crates/tor-llcrypto/Cargo.toml
@@ -14,7 +14,7 @@ repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
[features]
default = []
memquota-memcost = ["tor-memquota", "derive-deftly"]
-full = ["memquota-memcost", "safelog/full"]
+full = ["memquota-memcost", "safelog/full", "tor-memquota?/full"]
with-openssl = ["openssl", "typenum", "cipher", "__is_nonadditive"]
with-sha1-asm = ["sha1/asm", "__is_nonadditive"]
diff --git a/crates/tor-memquota/Cargo.toml b/crates/tor-memquota/Cargo.toml
index ca6b5c2db..ac50457ed 100644
--- a/crates/tor-memquota/Cargo.toml
+++ b/crates/tor-memquota/Cargo.toml
@@ -52,6 +52,7 @@ full = [
"tor-rtcompat/full",
"tor-async-utils/full",
"tor-basic-utils/full",
+ "slotmap-careful/full",
]
default = ["memquota"]
memquota = []
diff --git a/crates/tor-netdoc/Cargo.toml b/crates/tor-netdoc/Cargo.toml
index 8c14962be..39dccb2a2 100644
--- a/crates/tor-netdoc/Cargo.toml
+++ b/crates/tor-netdoc/Cargo.toml
@@ -35,6 +35,8 @@ experimental = [
"build_docs",
"experimental-api",
"hs-dir",
+ "hs-pow-full",
+ "hs-pow-v1",
"hsdesc-inner-docs",
"dangerous-expose-struct-fields",
]
@@ -63,8 +65,8 @@ hs-common = ["rand", "tor-hscrypto", "tor-linkspec", "tor-units"]
hsdesc-inner-docs = ["visibility", "__is_experimental"] # TODO maybe fold this feature into `testing`
# Onion service proof of work schemes
-hs-pow-v1 = ["tor-hscrypto/pow-v1"]
-hs-pow-full = ["hs-pow-v1"]
+hs-pow-v1 = ["tor-hscrypto/pow-v1", "__is_experimental"]
+hs-pow-full = ["hs-pow-v1", "__is_experimental"]
# Enable experimental APIs that are not yet officially supported.
#
diff --git a/crates/tor-proto/Cargo.toml b/crates/tor-proto/Cargo.toml
index 025d6d9c4..60495796f 100644
--- a/crates/tor-proto/Cargo.toml
+++ b/crates/tor-proto/Cargo.toml
@@ -35,6 +35,7 @@ full = [
"tor-hscrypto?/full",
"tor-log-ratelim/full",
"oneshot-fused-workaround/full",
+ "tor-memquota/full",
]
experimental = ["experimental-api", "ntor_v3", "stream-ctrl", "testing"]
diff --git a/crates/tor-rtcompat/Cargo.toml b/crates/tor-rtcompat/Cargo.toml
index 53eb72f4f..b05938325 100644
--- a/crates/tor-rtcompat/Cargo.toml
+++ b/crates/tor-rtcompat/Cargo.toml
@@ -14,7 +14,7 @@ repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
[features]
default = []
-full = ["arbitrary", "async-std", "tokio", "native-tls", "tor-error/full"]
+full = ["arbitrary", "async-std", "tokio", "native-tls", "tor-error/full", "tor-general-addr/full"]
async-std = ["async-std-crate", "async-io", "async_executors/async_std"]
tokio = [
diff --git a/crates/tor-rtmock/Cargo.toml b/crates/tor-rtmock/Cargo.toml
index 529c28e92..777edc6e7 100644
--- a/crates/tor-rtmock/Cargo.toml
+++ b/crates/tor-rtmock/Cargo.toml
@@ -41,6 +41,6 @@ tor-general-addr = { path = "../tor-general-addr", version = "0.23.0" }
tor-rtcompat = { path = "../tor-rtcompat", version = "0.23.0", features = ["tokio", "native-tls"] }
[features]
-full = ["tor-rtcompat/full", "tor-error/full", "oneshot-fused-workaround/full"]
+full = ["tor-rtcompat/full", "tor-error/full", "oneshot-fused-workaround/full", "slotmap-careful/full", "tor-general-addr/full"]
[package.metadata.docs.rs]
all-features = true
diff --git a/crates/tor-socksproto/Cargo.toml b/crates/tor-socksproto/Cargo.toml
index d05a19d2c..ae2de5898 100644
--- a/crates/tor-socksproto/Cargo.toml
+++ b/crates/tor-socksproto/Cargo.toml
@@ -17,7 +17,7 @@ default = ["proxy-handshake"]
client-handshake = []
proxy-handshake = []
-full = ["proxy-handshake", "client-handshake", "caret/full", "tor-bytes/full", "tor-error/full"]
+full = ["proxy-handshake", "client-handshake", "caret/full", "tor-bytes/full", "tor-error/full", "safelog/full"]
[dependencies]
amplify = { version = "4", default-features = false, features = ["derive"] }
diff --git a/crates/tor-units/Cargo.toml b/crates/tor-units/Cargo.toml
index 4bdd3a675..a75286659 100644
--- a/crates/tor-units/Cargo.toml
+++ b/crates/tor-units/Cargo.toml
@@ -22,7 +22,7 @@ tor-memquota = { version = "0.23.0", path = "../tor-memquota", default-features
float-cmp = "0.10.0"
[features]
-full = ["memquota-memcost"]
+full = ["memquota-memcost", "tor-memquota?/full"]
memquota-memcost = ["derive-deftly", "tor-memquota"]
# [derive_more]