-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCargo.toml
143 lines (133 loc) · 4.17 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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
[workspace]
# Here we declare that this is a workspace, containing several crates
# within it.
#
# Please keep this list topologically sorted by dependency relation, so
# that every crate appears _before_ any other crate that depends on it.
# This also applies to dev-dependencies.
# We depend on this for publishing to crates.io. e.g.
# see
# https://blog.iany.me/2020/10/gotchas-to-publish-rust-crates-in-a-workspace/#cyclic-dependencies
members = [
"crates/oneshot-fused-workaround",
"crates/slotmap-careful",
"crates/test-temp-dir",
"crates/fslock-guard",
"crates/hashx",
"crates/equix",
"crates/tor-basic-utils",
"crates/caret",
"crates/fs-mistrust",
"crates/safelog",
"crates/retry-error",
"crates/tor-error",
"crates/tor-general-addr",
"crates/tor-events",
"crates/tor-geoip",
"crates/tor-rtcompat",
"crates/tor-rtmock",
"crates/tor-async-utils",
"crates/tor-config",
"crates/tor-config-path",
"crates/tor-rpc-connect",
"crates/tor-log-ratelim",
"crates/tor-rpcbase",
"crates/tor-memquota",
"crates/tor-units",
"crates/tor-llcrypto",
"crates/tor-protover",
"crates/tor-bytes",
"crates/tor-checkable",
"crates/tor-cert",
"crates/tor-key-forge",
"crates/tor-hscrypto",
"crates/tor-socksproto",
"crates/tor-linkspec",
"crates/tor-cell",
"crates/tor-proto",
"crates/tor-netdoc",
"crates/tor-consdiff",
"crates/tor-netdir",
"crates/tor-relay-selection",
"crates/tor-persist",
"crates/tor-chanmgr",
"crates/tor-ptmgr",
"crates/tor-guardmgr",
"crates/tor-circmgr",
"crates/tor-dirclient",
"crates/tor-dirmgr",
"crates/tor-keymgr",
"crates/tor-hsclient",
"crates/tor-hsservice",
"crates/tor-hsrproxy",
"crates/tor-relay-crypto",
"crates/arti-client",
"crates/arti-relay",
"crates/arti-rpcserver",
"crates/arti-config",
"crates/arti",
"crates/arti-bench",
"crates/arti-testing",
"crates/arti-ureq",
"crates/arti-rpc-client-core",
"maint/fixup-features",
"maint/keygen-openssh-test",
"examples/gsoc2023/connection-checker",
"examples/gsoc2023/dns-resolver",
"examples/gsoc2023/obfs4-checker",
"examples/gsoc2023/pt-proxy",
"examples/hyper/hyper-http-client-example",
"examples/hyper/hyper-http-hs-example",
"examples/axum/axum-hello-world",
"examples/download-manager",
"examples/ureq-examples",
]
resolver = "2"
[profile.release]
# For release builds, we want the most tuned Arti we can get;
# that seems to be with these options.
lto = true
codegen-units = 1
[profile.release-small]
# We define a separate "small" release profile, for the case where
# we care more strongly about download or binary size than we do
# about performance.
inherits = "release"
# By default we'd like to get good performance and a small download size.
# (Assuming xz compression on the binary.)
#
# The biggest win is to run `strip --strip-debug` on the binary after
# generating it, to throw out debugging symbols that we inherited from
# other libraries. Don't do `strip --strip-unused`, though, or you'll
# break backtraces. That saves about 21% download size.
strip = "debuginfo"
#
# Using LTO saves a further 14% of download size, and improves performance,
# at the cost of compile time.
#
# We already have `lto = true` in "release".
#
# Setting codegen-units=1 saves a further 7% download size. It also
# improves performance at the cost of compile time.
#
# We already have codegen-units = 1 in "release".
#
# Optimize for size. [Actually this is even smaller than 'z' on rust
# 1.56. It saves about 11% download size over the default value of '3'.]
opt-level = 's'
[profile.release.package.slotmap-careful]
opt-level = 2
[profile.quicktest]
# This profile is meant to be a compromise between "release" (which
# takes a long time to build) and "dev" (which can be too slow to actually
# use when connecting over the Tor network).
inherits = "release"
lto = "thin"
codegen-units = 16
opt-level = 2
incremental = true
[profile.bench]
# For "cargo bench", which is only used by some crates.
# Inherits release build settings, but adds full debug symbols.
debug = 2
strip = "none"