Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
150 lines (143 loc) · 4.79 KB
/
Copy pathCargo.toml
File metadata and controls
150 lines (143 loc) · 4.79 KB
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
144
145
146
147
148
149
150
[workspace]
resolver = "2"
members = ["rust/crates/*"]
# Gradle builds these Android JNI crates independently of the core workspace.
exclude = [
"hosts/android/bindings/bandersnatch-crypto/rust",
"hosts/android/bindings/hydra-dx-math/rust",
"hosts/android/bindings/sr25519-vrf/rust",
]
[workspace.package]
edition = "2024"
license = "MIT"
[workspace.dependencies]
anyhow = "1"
async-sqlite = { version = "0.6", default-features = false }
arboard = { version = "3.6.1", default-features = false }
async-trait = "0.1"
base64 = "0.22"
binary-merkle-tree = { version = "16.1.2", default-features = false }
bip39 = "2"
blake2b_simd = { version = "1", default-features = false }
chacha20poly1305 = { version = "0.10", default-features = false }
clap = "4"
console_error_panic_hook = "0.1"
convert_case = "0.6"
crossterm = "0.29"
curve25519-dalek = { version = "4", default-features = false }
derive_more = "2"
ed25519-dalek = "2"
flate2 = "1"
frame-metadata = { version = "23", default-features = false }
fs2 = "0.4"
futures = "0.3"
futures-timer = "3"
futures-util = "0.3"
getrandom = "0.2"
hash-db = { version = "0.16", default-features = false }
hex = "0.4"
hkdf = "0.12"
image = { version = "0.25", default-features = false }
indoc = "2"
itertools = "0.14"
js-sys = "0.3"
jsonrpsee = "0.26"
jsonrpsee-client-transport = "0.26"
jsonrpsee-core = "0.26"
libc = "0.2"
libsecp256k1 = { version = "0.7", default-features = false, features = ["lazy-static-context"] }
log = "0.4"
merlin = "3"
nanoid = "0.4"
parking_lot = "0.12"
parity-scale-codec = "3"
pin-project = "1"
proc-macro2 = "1"
qrcode = { version = "0.14.1", default-features = false }
quote = "1"
rand = "0.8"
ratatui = { version = "0.30.2", default-features = false }
reqwest = { version = "0.12", default-features = false }
rqrr = { version = "0.10.1", default-features = false }
rusqlite = "0.40"
rusqlite_migration = "2.6"
rustix = "1"
rustls = { version = "0.23", default-features = false }
scale-decode = "0.16"
scale-info = { version = "2.11", default-features = false }
schnorrkel = { version = "0.11.5", default-features = false }
send_wrapper = "0.6"
serde = "1"
serde_json = "1"
serde_with = { version = "3", default-features = false, features = ["macros"] }
sha2 = "0.10"
shlex = "1"
smoldot = { version = "4", default-features = false }
smoldot-light = { version = "2.1", default-features = false }
socket2 = "0.6"
sp-crypto-hashing = { version = "0.1", default-features = false }
strum = { version = "0.28", features = ["derive"] }
substrate-bip39 = { version = "0.6", default-features = false }
subxt = { version = "0.51.1", default-features = false }
subxt-rpcs = { version = "0.51.1", default-features = false }
syn = "2"
tar = "0.4"
tempfile = "3"
thiserror = "1"
tokio = "1"
tokio-rustls = { version = "0.26", default-features = false }
tokio-stream = "0.1"
tokio-tungstenite = "0.24"
tracing = "0.1"
tracing-subscriber = { version = "0.3", default-features = false }
trybuild = "1"
tsify = { version = "0.5", default-features = false, features = ["js"] }
unicode-normalization = "0.1"
unicode-width = "0.2"
uniffi = "0.32.0"
url = "2"
wasm-bindgen = "0.2.118"
wasm-bindgen-futures = "0.4"
wasm-bindgen-test = "0.3"
web-sys = "0.3"
web-time = "1"
webpki-roots = "0.26"
x25519-dalek = { version = "2", default-features = false }
zeroize = { version = "1", default-features = false }
[workspace.lints.rust]
missing_docs = "warn"
unsafe_code = "deny"
[workspace.lints.clippy]
complexity = "warn"
correctness = "warn"
# Line tables carry the file and line a failing test's backtrace needs, without
# the variable-level DWARF only an attached debugger reads. Measured on a cold
# `cargo test -p truapi --all-features --lib`: 41.7s and 1.9G of
# artifacts with full debuginfo, 31.9s and 1.6G with line tables. Warm rebuilds
# are unaffected. Step-through debugging with locals wants `debug = true` here.
[profile.dev]
debug = "line-tables-only"
[profile.release]
opt-level = "z"
lto = "fat"
codegen-units = 1
panic = "abort"
strip = "symbols"
debug = false
# UniFFI binding generation scans the host cdylib's exported metadata symbols.
# `release` strips them (`strip = "symbols"`), so uniffi-bindgen finds nothing
# and emits no bindings. This profile inherits release but keeps symbols, and is
# used by the `uniffi` / `uniffi-kotlin` make targets for the codegen build only.
[profile.codegen]
inherits = "release"
strip = false
# This dylib is never shipped: uniffi-bindgen only reads its exported metadata
# symbols. Size optimisation, whole-program LTO and a single codegen unit buy
# nothing here and cost the whole wait on every core edit, so the profile
# optimises for build speed instead. The bindings it produces are unchanged.
opt-level = 0
lto = false
codegen-units = 16
# Most core edits touch one crate, so reusing the previous compilation is the
# largest remaining win on this path.
incremental = true