-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
131 lines (94 loc) · 4.3 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[package]
name = "hitdns"
version = "0.7.0"
edition = "2021"
description = "hitdns is a DNS forward server optimized for cache hit ratio and query latency."
license = "GPL-3.0"
authors = ["Delta4 <[email protected]>", "Your Name <[email protected]>"]
repository = "https://github.com/delta4chat/hitdns"
keywords = ["dns", "dns-over-https", "doh", "cache", "dns-server"]
categories = ["command-line-utilities", "network-programming", "caching", "web-programming::http-server", "web-programming::http-client"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = [ "vergen", "sqlite", "ftlog" ]
#default = [ "vergen", "sqlite", "ftlog", "doh3" ]
doh3 = [ "dep:reqwest-h3" ]
doq = [ "dep:quinn" ]
dot = [ "dep:async-tls" ]
sqlite = [ "dep:sqlx" ]
ftlog = [ "dep:ftlog2", "dep:anstyle", "dep:time" ]
vergen = [ "dep:vergen" ]
[dependencies]
anyhow = "1.0.79"
async-tls = { optional = true, version = "0.13.0" }
serde = { version = "1.0.196", features = ["alloc", "derive", "rc", "std"] }
serde_json = { version = "1.0.128", features = ["preserve_order"] }
bincode = "1.3.3"
bytes = "1.5.0"
quoted_printable = "0.5.0"
clap = { version = "4.5.20", features = ["derive"] }
directories = "5.0.1"
hickory-proto = { version = "0.24.0", default-features = false, features = ["dnssec"] }
log = "0.4.20"
env_filter = "0.1.0"
env_logger = "0.11.1"
#async-h1 = "2.3.4"
async-h1b = "3.0.7"
#async-h1b = { path = "../async-h1" }
http-types = { version = "2.12.0", default-features = false }
#ftlog = { optional = true, version = "0.2.12", features = ["tsc"], default-features = false }
ftlog2 = { optional = true, version = "0.3.2", features = ["tsc"] }
#ftlog2 = { optional = true, version = "0.3.1", path = "../ftlog", features = ["tsc"] }
anstyle = { optional = true, version = "1.0.6" }
time = { optional = true, version = "0.3.36", features = ["alloc", "formatting"] }
once_cell = "1.19.0"
# TLS library for DoH/DoT
rustls = { version = "0.23.14", features = ["custom-provider", "std", "tls12"], default-features = false }
# HTTPS library for DoH client
reqwest = { package = "reqwest-h3", version = "0.13.1", features = ["rustls-tls", "http2"], default-features = false }
reqwest-h3 = { optional = true, version = "0.13.1", features = ["rustls-tls", "http2", "unstable", "http3"], default-features = false }
#reqwest-h3 = { path = "../reqwest", features = ["rustls-tls", "http2", "unstable", "http3"], default-features = false }
#hyper = { version = "0.14.21", features = ["client"], default-features = false }
# QUIC library for DoQ client
quinn = { optional = true, version = "0.11.6", features = ["rustls", "runtime-async-std"], default-features = false }
scc = { version = "2.2.1", features = ["serde"] }
fastrand = "2.1.0"
smol = "2.0.0"
smoltimeout = "0.6.2"
#smolscale = { version = "0.4.4", features = ["preempt"] }
smolscale2 = { version = "0.6.0", features = ["preempt", "async-compat"] }
#smolscale2 = { path = "../smolscale", features = ["preempt", "async-compat"] }
portable-atomic = { version = "1.6.0", features = ["float"] }
sqlx = { optional = true, version = "0.8.2", features = ["runtime-async-std", "sqlite"], default-features = false }
sled = { optional = true, version = "0.34.7", features = ["compression", "zstd"], default-features = false }
#sled = { optional = true, version = "1.0.0-alpha.120" }
event-listener = { version = "5.3.1", features = ["portable-atomic"] }
toml-env = { version = "1.2.0", features = ["log"] }
data-encoding = "2.6.0"
moka2 = { version = "0.13.0", default-features = false, features = ["future", "logging", "quanta"] }
anypki = "0.1.8"
#anypki = { path = "../anypki" }
rustls-native-certs = "0.8.1"
rustls-rustcrypto = { version = "0.0.2-alpha", features = ["logging"] }
[build-dependencies]
vergen = { optional = true, version = "8.3.2", features = ["build", "cargo", "cargo_metadata", "cfg-if", "git", "gitoxide", "gix", "regex", "rustc", "rustc_version", "si", "sysinfo", "time"], default-features = false }
[profile.dev]
panic = "unwind"
opt-level = 2
lto = "off"
#strip = "none"
codegen-units = 256
overflow-checks = true
debug-assertions = true
debug = "limited"
incremental = true
[profile.release]
panic = "unwind"
opt-level = 3
lto = true
strip = true
codegen-units = 1
overflow-checks = true
debug-assertions = false
debug = 1
incremental = false