-
-
Notifications
You must be signed in to change notification settings - Fork 20
/
Cargo.toml
188 lines (177 loc) · 7.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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
[workspace]
resolver = "2"
members = [
"allocator",
"api",
"dialogs",
"extension",
"macros",
"playtime-clip-engine",
"playtime-api",
"pot",
"pot-browser",
"csi",
"main",
"rx-util",
"swell-ui",
"base",
"artwork-processor",
# Will probably be excluded from the workspace in future
"main/lib/helgoboss-learn"
]
[workspace.dependencies]
# Own
base = { path = "base" }
pot = { path = "pot" }
pot-browser = { path = "pot-browser" }
reaper-common-types = { git = "https://github.com/helgoboss/reaper-rs.git", branch = "master" }
reaper-rx = { git = "https://github.com/helgoboss/reaper-rs.git", branch = "master" }
reaper-fluent = { git = "https://github.com/helgoboss/reaper-rs.git", branch = "master" }
reaper-high = { git = "https://github.com/helgoboss/reaper-rs.git", branch = "master", features = ["serde"] }
reaper-medium = { git = "https://github.com/helgoboss/reaper-rs.git", branch = "master", features = ["serde"] }
reaper-low = { git = "https://github.com/helgoboss/reaper-rs.git", branch = "master" }
reaper-macros = { git = "https://github.com/helgoboss/reaper-rs.git", branch = "master" }
rppxml-parser = { git = "https://github.com/helgoboss/reaper-rs.git", branch = "master" }
swell-ui = { path = "swell-ui" }
rx-util = { path = "rx-util" }
playtime-clip-engine = { path = "playtime-clip-engine" }
helgobox-api = { path = "api" }
helgobox-macros = { path = "macros" }
helgobox-allocator = { path = "allocator" }
playtime-api = { path = "playtime-api" }
realearn-csi = { path = "csi" }
helgoboss-learn = { path = "main/lib/helgoboss-learn", features = ["reaper-low"] }
helgoboss-midi = { version = "0.4", features = ["serde", "serde_repr"] }
helgoboss-license-api = { git = "https://github.com/helgoboss/helgoboss-license-api" }
# 3rd-party
scopeguard = "1.1.0"
rxrust = { git = "https://github.com/rxRust/rxRust", rev = "349e50b3197e05926e2378ef8fc45cb67ad43b83" }
indexmap = "2.1.0"
itertools = "0.12.0"
wildmatch = "2.1.0"
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
serde_plain = "1.0.2"
derive_more = "0.99.16"
tokio = { version = "1", features = ["rt-multi-thread", "sync", "macros", "time"] }
enum-map = { version = "2.4.1", features = ["serde"] }
once_cell = "1.4.0"
strum = { version = "0.25.0", features = ["derive"] }
regex = "1"
walkdir = "2"
either = "1.8.0"
tracing = "0.1.40"
tracing-core = "0.1.32"
futures = { version = "0.3", default-features = false }
derivative = "2.2.0"
tempfile = "3.1.0"
xxhash-rust = { version = "0.8.6", features = ["xxh3"] }
crossbeam-channel = "0.5"
futures-timer = "3.0.2"
metrics = "0.22.0"
ascii = "1.0"
winapi = "0.3"
bindgen = "0.69.2"
enumflags2 = "0.7.4"
nanoid = "0.4.0"
slug = "0.1.4"
num_enum = "0.7.2"
tonic = "0.10.2"
prost = "0.12.3"
nom = "7.0.0"
semver = { version = "1.0.17", features = ["serde"] }
enumset = "1.0.12"
mlua = { git = "https://github.com/mlua-rs/mlua.git", rev = "59c9abbac76b7ec60c470c94698dfb29f6683b2e", features = ["vendored", "luau", "serialize"] }
chrono = "0.4.11"
dirs = "5.0.1"
libloading = "0.8"
tokio-stream = { version = "0.1.8", features = ["sync"] }
raw-window-handle = "0.4.2"
egui = "0.21.0"
egui_extras = "0.21.0"
egui-toast = "0.6.0"
bytesize = "1.0.1"
hex = "0.4.2"
rmp-serde = "1.1.1"
anyhow = "1.0.71"
thiserror = "1.0.45"
enum_dispatch = "0.3.6"
tinyvec = "1.6.0"
erased-serde = "0.4.2"
fragile = "2.0.0"
approx = "0.5.1"
serde_repr = "0.1.5"
serde_with = "3.4.0"
lazycell = "1.2"
rosc = "0.10.1"
rust-ini = "0.20.0"
function_name = "0.3.0"
num = "0.4.1"
logos = "0.13.0"
camino = "1.1.7"
auto_impl = "1.1.0"
bytemuck = "1.13.1"
palette = "0.7.4"
libc = "0.2.153"
path-slash = "0.2.1"
pathdiff = "0.2.1"
open = "5.0.1"
url = "2.5.2"
atomic = "0.6.0"
static_assertions = "1.1.0"
image = { version = "0.25.2", default-features = false }
cached = "0.53.1"
imageproc = "0.25.0"
[profile.release]
# There's a long reasoning about those values in CONTRIBUTING.adoc
debug = 2
# Switching to "symbols" will reduce size even more but leads to useless stack traces when panicking
strip = "debuginfo"
split-debuginfo = "packed"
[profile.dev-llvm-out-of-memory-fix]
inherits = "dev"
# Lately, i686 Windows builds often fail due to "LLVM ERROR: out of memory".
# Lowering the amount of debug information included in the binary is supposed to fix that.
debug = 1
[profile.release-llvm-out-of-memory-fix]
inherits = "release"
# Lately, i686 Windows builds often fail due to "LLVM ERROR: out of memory".
# Lowering the amount of debug information included in the binary is supposed to fix that.
debug = 1
[patch.crates-io]
# TODO-low-wait
# I absolutely need Flutter to be able to connect with ReaLearn based on a LAN IP address. Without this hack, Flutter
# will fail to connect with a TLSV1_ALERT_DECODE_ERROR. As soon as https://github.com/briansmith/webpki/issues/54 is
# closed and rustls has updated the dependency, we should remove this!
#webpki = { git = "https://github.com/helgoboss/webpki.git", branch = "workaround/54-alert-decode-error-0.22.0" }
# Yes! Thanks to the use of axum-server (instead of warp) we don't need this Hyper patch anymore! axum-server seems to
# use lower-level Hyper features and implements a proper graceful shutdown feature on it that allows one to specify a
# timeout. If not all connections are closed until that timeout, it just shuts down forcibly. That's important and
# exactly what we need. We need the server shutdown happen immediately before ReaLearn is unloaded without having to
# force the user to wait for open connections to finish. The following was a temporary hack to make this possible.
# See https://github.com/hyperium/hyper/issues/1885, https://github.com/hyperium/hyper/issues/2386.
# For a moment, I thought that I need to reintroduce this patch for gRPC, which is driven by tonic. Indeed, when using
# tonic's serve_with_shutdown() feature, REAPER doesn't quit until Playtime gRPC client has disconnected :/ But
# fortunately, using the tokio::select! workaround (mentioned in issue 2386) works and *also* closes the ports this
# time! Turns out the same is actually true for axum, so we use select! there as well.
#hyper = { git = "https://github.com/helgoboss/hyper.git", branch = "feature/realearn" }
# TODO-low-wait Wait until https://github.com/RustAudio/vst-rs/issues/184 merged.
vst = { git = "https://github.com/helgoboss/vst-rs.git", branch = "feature/param-props" }
#vst = { path = "../vst-rs" }
# This is for temporary development with local reaper-rs.
#[patch.'https://github.com/helgoboss/reaper-rs.git']
#reaper-common-types = { path = "../reaper-rs/main/common-types" }
#reaper-fluent = { path = "../reaper-rs/main/fluent" }
#reaper-high = { path = "../reaper-rs/main/high" }
#reaper-medium = { path = "../reaper-rs/main/medium" }
#reaper-macros = { path = "../reaper-rs/main/macros" }
#reaper-low = { path = "../reaper-rs/main/low" }
#reaper-rx = { path = "../reaper-rs/main/rx" }
#rppxml-parser = { path = "../reaper-rs/main/rppxml-parser" }
## This is for temporary development with local egui-baseview.
#[patch.'https://github.com/helgoboss/egui-baseview.git']
#egui-baseview = { path = "../egui-baseview" }
#
## This is for temporary development with local baseview.
#[patch.'https://github.com/helgoboss/baseview.git']
#baseview = { path = "../baseview" }