-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
412 lines (371 loc) · 14.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
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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
[workspace.package]
authors = []
description = ""
edition = "2021"
license = ""
repository = ""
[workspace]
exclude = ["ezpz/ezpz-pluginz"]
members = ["ezpz/*", "juzt/*"]
resolver = "2"
[profile.dev.package."*"]
codegen-units = 1
debug = false
incremental = false
opt-level = "z"
strip = true
[profile.release]
codegen-units = 1
debug = false
incremental = false
lto = true
opt-level = "z"
panic = "abort"
strip = true
[workspace.dependencies]
# Misc
# Datatypes
base64 = { version = "0.22.1" } # encodes and decodes base64 as bytes or utf8
chrono = { version = "0.4.38", features = ["serde"] } # data and time lib
time = { version = "0.3.36", features = ["formatting"] } # Date and time library.
uuid = { version = "1.10.0", features = ["serde"] }
# Database
connectorx = "0.3.3" # Load data from databases to dataframes, the fastest way.
# Tools
clap = { version = "4.5", features = ["derive"] } # CLI Builder
lru = "0.12.5" # A LRU cache implementation
proc-macro2 = "1.0.87" # A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.
proc-macro2-diagnostics = { version = "0.10.1" } # Diagnostics for proc-macro2.
validator = { version = "0.18.1", features = ["derive"] } # Common validation functions (email, url, length, ...) and trait
# Logging
env_logger = "0.11.0" # A logging implementation for `log` which is configured via an environment variable.
# Formatters
convert_case = "0.6.0" # Convert strings into any case
pulldown-cmark = "0.12.2"
separator = "0.4.1" # Formats numbers into strings with thousands separators for readability.
# Serialization
serde = { version = "1.0.210", features = ["derive"] } # A generic serialization/deserialization framework
serde_json = "1.0.132"
# Config
cargo_toml = { version = "0.20.5" } #`Cargo.toml` struct definitions for parsing with Serde
config = "0.14.0" # reads ini, json, yaml, toml, ron, json5
confy = "0.6.1" # Boilerplate-free configuration management
dotenv = { version = "0.15.0" } # A `dotenv` implementation for Rust
pyproject-toml = "0.12.0" # pyproject.toml parser in Rust
# Errors
anyhow = "1.0.89" # Flexible concrete Error type built on std::error::Error
thiserror = "1.0.64" # derive(Error)
tracing = "0.1.40" # Application-level tracing for Rust.
tracing-futures = "0.2.5" # Utilities for instrumenting `futures` with `tracing`.
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } # Utilities for implementing and composing `tracing` subscribers.
# crates
ezpz-stubz = { path = "ezpz/ezpz-stubz" }
# Server
aide = "0.13.4"
arti-axum = "0.1.0"
axum = { version = "0.7", features = ["multipart"] } # Web framework that focuses on ergonomics and modularity
axum-analytics = "1.1.3"
axum-auth = "0.7.0"
axum-client-ip = "0.6.1"
axum-dyn-error = "0.1"
axum-embed = "0.1.0"
axum-extra = { version = "0.9.4", features = ["form", "typed-routing"] } # Extra utilities for axum
axum-forwarded-header = "0.1.0"
axum-helmet = "0.1.0"
axum-jrpc = "0.7.1"
axum-login = "0.16.0"
axum-messages = "0.7.0"
axum-otel-metrics = "0.8.1"
axum-postcard = "0.2.0"
axum-prometheus = "0.7.0"
axum-range = "0.4.0"
axum-response-cache = "0.1.1"
axum-route-error = "5.0.1"
axum-serde = { version = "0.6.1", features = ["full"] }
axum-server = { vers0.7.7 = "0.7.1" } # High level server designed to be used with axum framework.
axum-server-timing = "1.0.1"
axum-session-manager = "0.1.1"
axum-signed-urls = "0.1.1"
axum-streams = "0.19.0"
axum-swagger-ui = "0.3.0"
axum-tungstenite = "0.3.0"
axum-tws = "0.4.0"
axum-typed-routing = "0.2.1"
axum-typed-websockets = "0.6.0"
axum-ws-rooms = "0.6.0"
axum_grants = "0.1.3"
axum_guard = "0.1.0"
axum_responses = "0.1.7"
axum_serde_valid = "0.23.1"
axum_session = { version = "*", features = ["key-store"] } # Session management layer for axum that supports HTTP and Rest.
axum_session_auth = { version = "0.14.1", features = ["key-store"] } # Library to Provide a User Authentication and privilege Token Checks.
axum_session_sqlx = { version = "0.3.0", features = ["sqlite", "tls-rustls"] }
axum_static = "1.7.1"
axum_typed_multipart_macros = "0.13.1"
named_routes_axum = "0.1.13"
oauth-axum = "0.1.3"
password-worker = "0.4.0"
protect-axum = "0.1.2"
serde-querystring-axum = "0.2.0"
tower-sessions-deadpool-sqlite-store = "0.1.1"
turbocharger = "0.4.0"
typed-session-axum = "0.3.0"
# Game
bevy = "0.14.2" # A refreshingly simple data-driven game engine and app framework
bevy_egui = "0.30.0" # A plugin for Egui integration into Bevy
bevy_rapier2d = "0.27.0" # 2-dimensional physics engine in Rust, official Bevy plugin.
bevy_renet = "0.0.12" # Server/Client network library for multiplayer games
leafwing-input-manager = "0.15.1" # A powerful, flexible and ergonomic way to manage action-input keybindings for Bevy
# Markdown
comrak = { version = "0.29.0" } # md -> html
# UI
daisy_rsx = "0.1" # Daisy UI components for the Dioxus Rust library.
# Egui
eframe = { version = "0.29.1", features = [
# "accesskit", # Make egui compatible with screen readers. NOTE: adds a lot of dependencies.
"default_fonts", # Embed the default egui fonts.
"glow", # Use the glow rendering backend. Alternative: "wgpu".
"persistence", # Enable restoring app state when restarting the app.
] }
egui = "0.29.1" # An easy-to-use immediate mode GUI that runs on both web and native
egui-notify = "0.17.0" # Simple notifications library for EGUI
egui_extras = "0.29.1" # Extra functionality and widgets for the egui GUI library
egui_node_graph2 = "0.6.0" # A helper library to create interactive node graphs using egui
egui_plot = "0.29.0" # Immediate mode plotting for the egui GUI library
# Desktop
notify = { version = "6.1.1" } # Cross-platform filesystem notification library
# polars
hashbrown = { version = "0.14.5", features = ["raw"] }
polars = { version = "0.42.0", features = [
"dataframe_arithmetic",
"describe",
"dtype-full",
"ipc",
"is_in",
"is_unique",
"json",
"lazy",
"parquet",
"performant",
"regex",
"strings",
] } # DataFrame library based on Apache Arrow
# PyO3
pyo3 = { version = "0.22.4", features = ["extension-module"] } # Bindings to Python interpreter
pyo3-polars = { version = "0.16.1", features = ["derive", "dtype-full", "lazy"] } # Expression plugins and PyO3 types for polars
pyo3-stub-gen = { version = "0.6.0", default-features = false } # Stub file (*.pyi) generator for PyO3
# Tokio
futures = "0.3.31"
tokio = { version = "1.40.0", features = ["full"] } # An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications.
tokio-postgres = { version = "0.7", features = [
"with-eui48-1",
"with-serde_json-1",
"with-time-0_3",
"with-uuid-1",
] } # A native, asynchronous PostgreSQL client
tokio-stream = "0.1" # Utilities to work with `Stream` and `tokio`.
tokio-tungstenite = { version = "0.24.0" } # Tokio binding for Tungstenite, the Lightweight stream-based WebSocket implementation
tokio-util = { version = "0.7.12" } # Additional utilities for working with Tokio.
js-sys = { version = "0.3.72" }
# Dioxus
## Official
dioxus = { version = "0.5.6" }
dioxus-cli = { version = "0.5.6" }
dioxus-fullstack = "0.5.6"
dioxus-hot-reload = { version = "0.5.6", features = ["custom_file_watcher", "file_watcher"] }
dioxus-ssr = "0.5.6"
dioxus-web = "0.5.6"
manganis = { version = "0.2.2", features = ["html", "macro"] } # Ergonomic, automatic, cross crate asset collection and optimization
manganis-cli-support = { version = "0.2.4", features = ["html"] }
# P2P
dittolive-ditto = "4.8.2"
## 3rd Party
async-std = "1.13.0"
async-trait = "0.1.83"
dioxus-charts = "0.2.0"
dioxus-class = "0.7.0"
dioxus-daisyui = "0.7.0"
dioxus-desktop = "0.5.6"
dioxus-form = "0.1.2"
dioxus-free-icons = { version = "0.8.6", features = ["font-awesome-brands", "font-awesome-solid"] }
dioxus-html-macro = "0.3.0"
dioxus-lazy = "0.2.0"
dioxus-logger = "0.5.1"
dioxus-material-icons = "2.0.0"
dioxus-query = "0.5.1"
dioxus-radio = "0.2.4"
dioxus-resize-observer = "0.2.1"
dioxus-sdk = { git = "https://github.com/DioxusLabs/sdk/", features = ["storage"] } # dioxus-sdk = { version = "0.5", features = ["storage"] }
dioxus-slides = "0.1.2"
dioxus-sortable = "0.1.2"
dioxus-spring = "0.2.1"
dioxus-table = "0.1.1"
dioxus-tailwindcss = "0.7.0"
dioxus-timer = "0.3.0"
dioxus-toast = { version = "0.4.0", features = ["web"] }
dioxus-use-computed = "0.1.0"
dioxus-use-window = "0.7.0"
dioxus-websocket-hooks = "0.0.2"
dioxus_storage = "0.0.4" # Global state management for Dioxus
lookbook = "0.2.0-alpha.1"
modx = "0.1.2" # A way to handle states with structs in Dioxus inspired by mobx
plotters-dioxus = "0.2.2" # A plotters-rs component for dioxus
[workspace.lints.rust]
unsafe_code = "deny"
elided_lifetimes_in_paths = "warn"
rust_2021_idioms = "warn"
rust_2021_prelude_collisions = "warn"
semicolon_in_expressions_from_macros = "warn"
trivial_numeric_casts = "warn"
unsafe_op_in_unsafe_fn = "warn" # `unsafe_op_in_unsafe_fn` may become the default in future Rust versions: https://github.com/rust-lang/rust/issues/71668
unused_extern_crates = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
trivial_casts = "allow"
unused_qualifications = "allow"
[workspace.lints.rustdoc]
all = "warn"
broken_intra_doc_links = "warn"
missing_crate_level_docs = "warn"
# See also clippy.toml
[workspace.lints.clippy]
as_ptr_cast_mut = "warn"
await_holding_lock = "warn"
bool_to_int_with_if = "warn"
char_lit_as_u8 = "warn"
checked_conversions = "warn"
clear_with_drain = "warn"
cloned_instead_of_copied = "warn"
dbg_macro = "warn"
debug_assert_with_mut_call = "warn"
derive_partial_eq_without_eq = "warn"
disallowed_macros = "warn" # See clippy.toml
disallowed_methods = "warn" # See clippy.toml
disallowed_names = "warn" # See clippy.toml
disallowed_script_idents = "warn" # See clippy.toml
disallowed_types = "warn" # See clippy.toml
doc_link_with_quotes = "warn"
doc_markdown = "warn"
empty_enum = "warn"
enum_glob_use = "warn"
equatable_if_let = "warn"
exit = "warn"
expl_impl_clone_on_copy = "warn"
explicit_deref_methods = "warn"
explicit_into_iter_loop = "warn"
explicit_iter_loop = "warn"
fallible_impl_from = "warn"
filter_map_next = "warn"
flat_map_option = "warn"
float_cmp_const = "warn"
fn_params_excessive_bools = "warn"
fn_to_numeric_cast_any = "warn"
from_iter_instead_of_collect = "warn"
get_unwrap = "warn"
if_let_mutex = "warn"
implicit_clone = "warn"
implied_bounds_in_impls = "warn"
imprecise_flops = "warn"
index_refutable_slice = "warn"
inefficient_to_string = "warn"
infinite_loop = "warn"
into_iter_without_iter = "warn"
invalid_upcast_comparisons = "warn"
iter_not_returning_iterator = "warn"
iter_on_empty_collections = "warn"
iter_on_single_items = "warn"
iter_without_into_iter = "warn"
large_digit_groups = "warn"
large_include_file = "warn"
large_stack_arrays = "warn"
large_stack_frames = "warn"
large_types_passed_by_value = "warn"
let_unit_value = "warn"
linkedlist = "warn"
lossy_float_literal = "warn"
macro_use_imports = "warn"
manual_assert = "warn"
manual_clamp = "warn"
manual_instant_elapsed = "warn"
manual_let_else = "warn"
manual_ok_or = "warn"
manual_string_new = "warn"
map_err_ignore = "warn"
map_flatten = "warn"
map_unwrap_or = "warn"
match_bool = "warn"
match_on_vec_items = "warn"
match_same_arms = "warn"
match_wild_err_arm = "warn"
match_wildcard_for_single_variants = "warn"
mem_forget = "warn"
mismatched_target_os = "warn"
mismatching_type_param_order = "warn"
missing_enforced_import_renames = "warn"
missing_errors_doc = "warn"
missing_safety_doc = "warn"
mut_mut = "warn"
mutex_integer = "warn"
needless_borrow = "warn"
needless_continue = "warn"
needless_for_each = "warn"
needless_pass_by_ref_mut = "warn"
needless_pass_by_value = "warn"
negative_feature_names = "warn"
nonstandard_macro_braces = "warn"
option_option = "warn"
path_buf_push_overwrite = "warn"
print_stderr = "warn"
ptr_as_ptr = "warn"
ptr_cast_constness = "warn"
pub_without_shorthand = "warn"
rc_mutex = "warn"
readonly_write_lock = "warn"
redundant_type_annotations = "warn"
ref_option_ref = "warn"
ref_patterns = "warn"
rest_pat_in_fully_bound_structs = "warn"
same_functions_in_if_condition = "warn"
semicolon_if_nothing_returned = "warn"
single_match_else = "warn"
str_to_string = "warn"
string_add = "warn"
string_add_assign = "warn"
string_lit_as_bytes = "warn"
string_lit_chars_any = "warn"
string_to_string = "warn"
suspicious_command_arg_space = "warn"
suspicious_xor_used_as_pow = "warn"
todo = "warn"
trailing_empty_array = "warn"
trait_duplication_in_bounds = "warn"
tuple_array_conversions = "warn"
unchecked_duration_subtraction = "warn"
undocumented_unsafe_blocks = "warn"
unimplemented = "warn"
uninhabited_references = "warn"
uninlined_format_args = "warn"
unnecessary_box_returns = "warn"
unnecessary_safety_doc = "warn"
unnecessary_struct_initialization = "warn"
unnecessary_wraps = "warn"
unnested_or_patterns = "warn"
unused_peekable = "warn"
unused_rounding = "warn"
unused_self = "warn"
use_self = "warn"
useless_transmute = "warn"
verbose_file_reads = "warn"
wildcard_dependencies = "warn"
wildcard_imports = "warn"
zero_sized_map_values = "warn"
# TODO: enable more of these lints:
iter_over_hash_type = "allow"
let_underscore_untyped = "allow"
missing_assert_message = "allow"
should_panic_without_expect = "allow"
too_many_lines = "allow"
unwrap_used = "warn" # TODO: We really wanna warn on this one
manual_range_contains = "allow" # this one is just worse imho
self_named_module_files = "allow" # Disabled waiting on https://github.com/rust-lang/rust-clippy/issues/9602
significant_drop_tightening = "allow" # Too many false positives