-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
144 lines (110 loc) · 3.36 KB
/
Cargo.toml
File metadata and controls
144 lines (110 loc) · 3.36 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
[workspace]
members = ["core", "nethercore-zx", "shared", "zx-common", "library", "xtask", "nether-qoa", "nether-xm", "nether-it", "nether-tracker", "tools/nether-export", "tools/nether-cli", "tools/ffi-gen", "tools/gen-test-anim", "tools/gen-multi-skinned-assets", "tools/gen-tracker-common", "tools/gen-tracker-demo-xm", "tools/gen-tracker-demo-it", "tools/gen-basic-assets", "tools/gen-gltf-test-assets", "tools/gen-paddle-assets", "tools/gen-glb-inline-assets", "tools/gen-glb-rigid-assets", "tools/glb-builder", "tools/tracker-debug"]
default-members = ["library"]
resolver = "2"
[workspace.package]
version = "0.1.0"
edition = "2024"
license = "MIT OR Apache-2.0"
repository = "https://github.com/nethercore-systems/nethercore"
[workspace.dependencies]
# WASM runtime
wasmtime = "39" # Latest stable (v39+ requires edition 2024)
# Rollback netcode
ggrs = "0.11"
# Windowing
winit = "0.30"
# Graphics
wgpu = "27"
# Audio
cpal = "0.16"
ringbuf = "0.4"
# Input
gilrs = "0.11"
# UI
egui = "0.33"
egui-wgpu = "0.33"
egui-winit = "0.33"
eframe = "0.33"
# Math
glam = { version = "0.30", features = ["bytemuck"] }
half = { version = "2", features = ["bytemuck", "serde"] }
# Serialization
bytemuck = { version = "1", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
bincode = "1"
bitcode = "0.6"
# Async runtime
tokio = { version = "1", default-features = false, features = ["rt", "sync", "rt-multi-thread", "macros", "fs"] }
# Error handling
anyhow = "1"
thiserror = "2"
# Logging
log = "0.4"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Random number generation
rand = "0.9"
rand_pcg = "0.9"
# HTTP
reqwest = { version = "0.12", default-features = false, features = ["json", "stream"] }
# Utilities
toml = "0.9"
directories = "6"
chrono = { version = "0.4", features = ["serde"] }
pollster = "0.4"
open = "5"
# Performance - faster HashMap/HashSet
hashbrown = { version = "0.16", features = ["serde"] }
# Performance - inline small vectors
smallvec = "1"
# WASM analysis
wasmparser = "0.243"
# CLI tools
clap = { version = "4", features = ["derive"] }
# Image processing
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] }
gif = "0.13"
# Texture compression
intel_tex_2 = "0.5"
# Asset import
gltf = "1"
hound = "3"
# UI file dialogs
rfd = "0.16"
# Terminal UI
ratatui = "0.29"
crossterm = "0.28"
# Parallelism
rayon = "1"
# File system utilities
walkdir = "2"
which = "8"
notify = "8"
notify-debouncer-mini = "0.6"
# Cryptography
sha2 = "0.10" # Stable version, compatible with hmac 0.12
hmac = "0.12"
hex = "0.4"
# PNG metadata access (for screenshot signing)
png = "0.17"
# Hashing
xxhash-rust = { version = "0.8", features = ["xxh3"] }
# Replay system
lz4_flex = "0.11"
byteorder = "1.5"
bitflags = "2.4"
# Dev dependencies (used in multiple crates)
tempfile = "3"
wat = "1"
# Release profile optimizations
[profile.release]
lto = "fat" # Full link-time optimization (maximum optimization)
strip = true # Strip debug symbols to reduce binary size
panic = "abort" # Abort on panic (smaller binaries, no unwinding)
# Dev profile: keep workspace crates debuggable, but optimize dependencies.
# This significantly improves runtime performance (startup, shader compilation, WASM JIT)
# without making our own code hard to step through.
[profile.dev.package."*"]
opt-level = 3