/ Cargo.toml
Cargo.toml
1 [workspace] 2 3 # Here we declare that this is a workspace, containing several crates 4 # within it. 5 # 6 # Please keep this list topologically sorted by dependency relation, so 7 # that every crate appears _before_ any other crate that depends on it. 8 # This also applies to dev-dependencies. 9 # We depend on this for publishing to crates.io. e.g. 10 # see 11 # https://blog.iany.me/2020/10/gotchas-to-publish-rust-crates-in-a-workspace/#cyclic-dependencies 12 members = [ 13 "crates/oneshot-fused-workaround", 14 "crates/slotmap-careful", 15 "crates/test-temp-dir", 16 "crates/fslock-guard", 17 "crates/hashx", 18 "crates/equix", 19 "crates/tor-basic-utils", 20 "crates/caret", 21 "crates/fs-mistrust", 22 "crates/safelog", 23 "crates/retry-error", 24 "crates/tor-error", 25 "crates/tor-general-addr", 26 "crates/tor-events", 27 "crates/tor-geoip", 28 "crates/tor-rtcompat", 29 "crates/tor-rtmock", 30 "crates/tor-async-utils", 31 "crates/tor-config", 32 "crates/tor-config-path", 33 "crates/tor-rpc-connect", 34 "crates/tor-log-ratelim", 35 "crates/tor-rpcbase", 36 "crates/tor-memquota", 37 "crates/tor-units", 38 "crates/tor-llcrypto", 39 "crates/tor-protover", 40 "crates/tor-bytes", 41 "crates/tor-checkable", 42 "crates/tor-cert", 43 "crates/tor-key-forge", 44 "crates/tor-hscrypto", 45 "crates/tor-socksproto", 46 "crates/tor-linkspec", 47 "crates/tor-cell", 48 "crates/tor-proto", 49 "crates/tor-netdoc", 50 "crates/tor-consdiff", 51 "crates/tor-netdir", 52 "crates/tor-relay-selection", 53 "crates/tor-congestion", 54 "crates/tor-persist", 55 "crates/tor-chanmgr", 56 "crates/tor-ptmgr", 57 "crates/tor-guardmgr", 58 "crates/tor-circmgr", 59 "crates/tor-dirclient", 60 "crates/tor-dirmgr", 61 "crates/tor-keymgr", 62 "crates/tor-hsclient", 63 "crates/tor-hsservice", 64 "crates/tor-hsrproxy", 65 "crates/tor-relay-crypto", 66 "crates/arti-client", 67 "crates/arti-relay", 68 "crates/arti-rpcserver", 69 "crates/arti-config", 70 "crates/arti", 71 "crates/arti-bench", 72 "crates/arti-testing", 73 74 "crates/arti-rpc-client-core", 75 76 "maint/fixup-features", 77 "maint/keygen-openssh-test", 78 79 "examples/gsoc2023/connection-checker", 80 "examples/gsoc2023/dns-resolver", 81 "examples/gsoc2023/obfs4-checker", 82 "examples/gsoc2023/pt-proxy", 83 "examples/hyper/hyper-http-client-example", 84 "examples/hyper/hyper-http-hs-example", 85 "examples/axum/axum-hello-world", 86 ] 87 88 resolver = "2" 89 90 [profile.release] 91 # By default we'd like to get good performance and a small download size. 92 # (Assuming xz compression on the binary.) 93 # 94 # The biggest win is to run `strip --strip-debug` on the binary after 95 # generating it, to throw out debugging symbols that we inherited from 96 # other libraries. Don't do `strip --strip-unused`, though, or you'll 97 # break backtraces. That saves about 21% download size. 98 99 # Using LTO saves a further 14% of download size, and improves performance, 100 # at the cost of compile time. 101 lto = true 102 # Setting codegen-units=1 saves a further 7% download size. It also 103 # improves performance at the cost of compile time. 104 codegen-units = 1 105 # Optimize for size. [Actually this is even smaller than 'z' on rust 106 # 1.56. It saves about 11% download size over the default value of '3'.] 107 opt-level = 's' 108 109 [profile.release.package.slotmap-careful] 110 opt-level = 2 111 112 [profile.quicktest] 113 # This profile is meant to be a compromise between "release" (which 114 # takes a long time to build) and "dev" (which can be too slow to actually 115 # use when connecting over the Tor network). 116 inherits = "release" 117 lto = "thin" 118 codegen-units = 16 119 opt-level = 2 120 incremental = true 121 122 [profile.bench] 123 # For "cargo bench", which is only used by some crates. 124 # Inherits release build settings, but adds full debug symbols. 125 debug = 2 126 strip = "none"