[package] name = "tor-hsservice" version = "0.42.0" authors = ["The Tor Project, Inc.", "Nick Mathewson "] edition = "2024" rust-version = "1.89" license = "MIT OR Apache-2.0" homepage = "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home" description = "Arti's implementation of an onion service provider" keywords = ["tor", "arti", "cryptography"] categories = ["cryptography"] repository = "https://gitlab.torproject.org/tpo/core/arti.git/" # # We need a PreferredRuntime # @@ test-all-crates conditional-option minimal --features=tor-rtcompat/tokio,tor-rtcompat/native-tls [features] default = [] restricted-discovery = [] metrics = ["dep:metrics", "__is_experimental"] # Onion service proof of work schemes hs-pow-full = [ "tor-hscrypto/hs-pow-full", "tor-netdoc/hs-pow-full", "tor-cell/hs-pow-full", "arrayvec", "equix", "num-traits", "tor-checkable", "__is_experimental", ] full = [ "restricted-discovery", "fs-mistrust/full", "oneshot-fused-workaround/full", "retry-error/full", "safelog/full", "tor-async-utils/full", "tor-basic-utils/full", "tor-bytes/full", "tor-cell/full", "tor-checkable?/full", "tor-circmgr/full", "tor-config-path/full", "tor-config/full", "tor-dirclient/full", "tor-error/full", "tor-hscrypto/full", "tor-key-forge/full", "tor-keymgr/full", "tor-linkspec/full", "tor-llcrypto/full", "tor-log-ratelim/full", "tor-netdir/full", "tor-netdoc/full", "tor-persist/full", "tor-proto/full", "tor-protover/full", "tor-relay-selection/full", "tor-rtcompat/full", "equix?/full", "web-time-compat/full", ] # 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 = [ "experimental-api", "hs-pow-full", "metrics", "onion-service-cli-extra", ] experimental-api = ["__is_experimental"] onion-service-cli-extra = ["tor-keymgr/onion-service-cli-extra", "__is_experimental"] __is_experimental = [] [dependencies] amplify = { version = "4", default-features = false, features = ["derive"] } arrayvec = { version = "0.7.4", features = ["serde"], optional = true } async-trait = "0.1.54" base64ct = "1.5.1" cfg-if = "1.0.0" derive-deftly = { version = "~1.11.0", features = ["full", "beta"] } derive_builder = { version = "0.11.2", package = "derive_builder_fork_arti" } derive_more = { version = "2.0.1", features = ["full"] } digest = "0.10.0" educe = "0.4.22" equix = { path = "../equix", version = "0.6.0", optional = true } fs-mistrust = { path = "../fs-mistrust", version = "0.14.0", features = ["serde"] } futures = "0.3.14" growable-bloom-filter = "2.0.1" hex = "0.4" humantime = "2" itertools = "0.14.0" k12 = "0.3.0" metrics = { version = "0.24.1", optional = true } num-traits = { version = "0.2.15", optional = true } once_cell = "1" oneshot-fused-workaround = { path = "../oneshot-fused-workaround", version = "0.6.0" } postage = { version = "0.5.0", default-features = false, features = ["futures-traits"] } rand = "0.9.1" rand_core = "0.9.3" retry-error = { version = "0.12.0", path = "../retry-error" } safelog = { path = "../safelog", version = "0.8.2" } serde = { version = "1.0.103", features = ["derive"] } serde_with = "3.0.0" strum = { version = "0.28.0", features = ["derive"] } thiserror = "2" tor-async-utils = { path = "../tor-async-utils", version = "0.42.0" } tor-basic-utils = { path = "../tor-basic-utils", version = "0.42.0" } tor-bytes = { version = "0.42.0", path = "../tor-bytes" } tor-cell = { version = "0.42.0", path = "../tor-cell", features = ["hs"] } tor-checkable = { version = "0.42.0", path = "../tor-checkable", optional = true } tor-circmgr = { version = "0.42.0", path = "../tor-circmgr", features = ["hs-service", "send-control-msg"] } tor-config = { version = "0.42.0", path = "../tor-config" } tor-config-path = { version = "0.42.0", path = "../tor-config-path" } tor-dirclient = { path = "../tor-dirclient", version = "0.42.0", default-features = false, features = ["hs-service"] } tor-error = { version = "0.42.0", path = "../tor-error" } tor-hscrypto = { version = "0.42.0", path = "../tor-hscrypto", features = ["ope"] } tor-keymgr = { version = "0.42.0", path = "../tor-keymgr", features = ["keymgr"] } tor-linkspec = { version = "0.42.0", path = "../tor-linkspec", features = ["verbatim", "decode"] } tor-llcrypto = { version = "0.42.0", path = "../tor-llcrypto" } tor-log-ratelim = { path = "../tor-log-ratelim", version = "0.42.0" } tor-netdir = { version = "0.42.0", path = "../tor-netdir", features = ["hs-service"] } tor-netdoc = { version = "0.42.0", path = "../tor-netdoc", features = ["hs-service"] } tor-persist = { version = "0.42.0", path = "../tor-persist", features = ["state-dir"] } tor-proto = { version = "0.42.0", path = "../tor-proto", features = [ "experimental-api", "hs-service", "send-control-msg", ] } tor-protover = { version = "0.42.0", path = "../tor-protover" } tor-relay-selection = { path = "../tor-relay-selection", version = "0.42.0" } tor-rtcompat = { version = "0.42.0", path = "../tor-rtcompat" } tracing = "0.1.36" void = "1" web-time-compat = { version = "0.1.0", path = "../web-time-compat" } [dev-dependencies] libc = { version = "0.2", default-features = false } rmp-serde = "1" serde_json = "1.0.104" slotmap-careful = { path = "../slotmap-careful", version = "0.7.0" } tempfile = "3" test-temp-dir = { version = "0.7.0", path = "../test-temp-dir" } tor-config = { version = "0.42.0", path = "../tor-config", features = ["testing"] } tor-key-forge = { version = "0.42.0", path = "../tor-key-forge" } tor-keymgr = { version = "0.42.0", path = "../tor-keymgr", features = ["keymgr", "testing"] } tor-netdir = { version = "0.42.0", path = "../tor-netdir", features = ["hs-service", "testing"] } tor-netdoc = { path = "../tor-netdoc", version = "0.42.0", features = ["testing"] } tor-persist = { version = "0.42.0", path = "../tor-persist", features = ["testing"] } tor-rtmock = { path = "../tor-rtmock", version = "0.42.0" } tracing-test = "0.2.4" walkdir = "2" [package.metadata.docs.rs] all-features = true