-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
113 lines (96 loc) · 3.33 KB
/
Cargo.toml
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
[package]
authors = ["Al Liu <scygliu1@gmail.com>"]
name = "nodecraft"
description = "Crafting seamless node operations for distributed systems, which provides foundational traits for node identification and address resolution."
homepage = "https://github.com/al8n/nodecraft"
repository = "https://github.com/al8n/nodecraft.git"
documentation = "https://docs.rs/nodecraft/"
readme = "README.md"
version = "0.3.5"
license = "MIT OR Apache-2.0"
keywords = ["node", "async", "distributed-systems"]
categories = ["network-programming", "asynchronous", "development-tools"]
edition = "2021"
rust-version = "1.75.0"
[features]
default = ["std"]
full = ["std", "agnostic", "dns", "resolver", "serde", "tracing"]
alloc = ["smol_str", "cheap-clone/alloc", "transformable?/alloc"]
std = [
"alloc",
"transformable?/std",
"cheap-clone/std",
"smol_str?/std",
"thiserror",
"serde?/std",
"humantime-serde",
"futures?/std",
]
# enable runtime agnostic features
agnostic = ["dep:agnostic-lite", "async", "std"]
# enable async features
async = ["dep:futures", "std", "transformable?/async"]
# enable dns node address resolver
dns = [
"std",
"resolver",
"dep:hickory-resolver",
"crossbeam-skiplist/default",
"async",
"agnostic/dns",
]
dns-over-quic = ["dns", "agnostic/dns-over-quic"]
dns-over-h3 = ["dns", "agnostic/dns-over-h3"]
dns-over-https-rustls = ["dns", "agnostic/dns-over-https-rustls"]
dns-over-rustls = ["dns", "agnostic/dns-over-rustls"]
dns-over-openssl = ["dns", "agnostic/dns-over-openssl"]
dns-over-native-tls = ["dns", "agnostic/dns-over-native-tls"]
dns-webpki-roots = ["dns", "agnostic/dns-webpki-roots"]
dns-native-certs = ["dns", "agnostic/dns-native-certs"]
dnssec-openssl = ["dns", "agnostic/dnssec-openssl"]
dnssec-ring = ["dnssec", "agnostic/dnssec-ring"]
dnssec = ["dns", "agnostic/dnssec"]
smol_str = ["dep:smol_str", "alloc", "transformable/smol_str"]
# enable node address resolver
resolver = ["async", "crossbeam-skiplist/default", "std"]
serde = [
"dep:serde",
"smol_str?/serde",
"humantime-serde",
"hickory-resolver?/serde-config",
]
rkyv = ["dep:rkyv"]
transformable = ["dep:transformable"]
# enable tracing
tracing = ["dep:tracing"]
[dependencies]
cheap-clone = { version = "0.1", default-features = false, features = [
"smol_str",
] }
agnostic-lite = { version = "0.3", optional = true }
agnostic = { version = "0.3", optional = true }
byteorder = "1.5"
futures = { version = "0.3", default-features = false, optional = true }
thiserror = { version = "1", optional = true }
transformable = { version = "0.1", default-features = false, optional = true }
serde = { version = "1", default-features = false, optional = true, features = [
"derive",
] }
humantime-serde = { version = "1", default-features = false, optional = true }
smol_str = { version = "0.2", default-features = false, optional = true }
hickory-resolver = { version = "0.24", default-features = false, optional = true }
crossbeam-skiplist = { version = "0.1", optional = true }
tracing = { version = "0.1", optional = true }
rkyv = { version = "0.7", optional = true, features = [
"smol_str",
"validation",
] }
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
rand = "0.8"
serde_json = "1"
bincode = "1"
agnostic = { version = "0.3", features = ["tokio", "net"] }
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]