[package] name = "tor-netdoc" version = "0.45.0" authors = ["The Tor Project, Inc.", "Nick Mathewson "] 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", "dep:imara-diff", "dep:regex"] # 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.5.2", features = ["zeroize"] } derive-deftly = { version = "~1.11.4", 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" extend = "1.2.0" hex = "0.4" hex-literal = { version = "1.0", optional = true } hostname-validator = "1.1.1" humantime = "2" imara-diff = { version = "0.2.0", optional = true } ipnet = "2" iprange = "0.6.7" itertools = "0.15.0" memchr = "2.5" paste = "1.0.3" phf = { version = "0.14.0", features = ["macros"] } rand = { version = "0.10.1" } rangemap = "1.7" regex = { version = "1", optional = true } 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.45.0" } tor-bytes = { path = "../tor-bytes", version = "0.45.0" } tor-cell = { path = "../tor-cell", version = "0.45.0" } tor-cert = { path = "../tor-cert", version = "0.45.0" } tor-checkable = { path = "../tor-checkable", version = "0.45.0" } tor-error = { path = "../tor-error", version = "0.45.0" } tor-hscrypto = { path = "../tor-hscrypto", version = "0.45.0", optional = true } tor-linkspec = { path = "../tor-linkspec", version = "0.45.0", optional = true } tor-llcrypto = { path = "../tor-llcrypto", version = "0.45.0", features = ["cvt-x25519"] } tor-protover = { path = "../tor-protover", version = "0.45.0", features = ["serde"] } tor-units = { version = "0.45.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.15.0" pem = "3.0.6" regex = "1" serde_json = "1.0.50" testresult = "0.4.1" tor-basic-utils = { version = "0.45.0", path = "../tor-basic-utils" } [package.metadata.docs.rs] all-features = true