From 78b09b33d62e3664d039dd2e82fc5714780e1b3e Mon Sep 17 00:00:00 2001 From: extrawurst <776816+extrawurst@users.noreply.github.com> Date: Thu, 10 Jul 2025 23:21:11 +0200 Subject: [PATCH] Lightyear setup (#55) --- Cargo.lock | 2280 ++++++++++++++++- Cargo.toml | 14 +- crates/client/Cargo.toml | 2 + crates/client/src/client.rs | 35 + crates/client/src/main.rs | 10 +- crates/client/src/ui/pause.rs | 3 +- crates/server/Cargo.toml | 3 + crates/server/src/main.rs | 11 +- crates/server/src/server.rs | 45 + crates/shared/Cargo.toml | 1 + crates/shared/src/abilities/arrow.rs | 10 +- crates/shared/src/abilities/curver.rs | 60 +- crates/shared/src/abilities/gun.rs | 6 +- crates/shared/src/abilities/missile.rs | 88 +- crates/shared/src/abilities/thrown.rs | 16 +- crates/shared/src/aim/mod.rs | 20 +- crates/shared/src/aim/target_ui.rs | 20 +- .../shared/src/control/controller_common.rs | 35 +- crates/shared/src/heads/mod.rs | 16 +- crates/shared/src/lib.rs | 1 + crates/shared/src/movables.rs | 3 +- crates/shared/src/npc.rs | 8 +- crates/shared/src/protocol.rs | 41 + crates/shared/src/utils/commands.rs | 21 + crates/shared/src/utils/mod.rs | 6 + justfile | 2 +- 26 files changed, 2515 insertions(+), 242 deletions(-) create mode 100644 crates/client/src/client.rs create mode 100644 crates/server/src/server.rs create mode 100644 crates/shared/src/protocol.rs create mode 100644 crates/shared/src/utils/commands.rs diff --git a/Cargo.lock b/Cargo.lock index 40bb6d5..bb51e95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "ab_glyph" -version = "0.2.29" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0" +checksum = "1e0f4f6fbdc5ee39f2ede9f5f3ec79477271a6d6a2baff22310d51736bda6cea" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -14,15 +14,19 @@ dependencies = [ [[package]] name = "ab_glyph_rasterizer" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" +checksum = "b2187590a23ab1e3df8681afdf0987c48504d80291f002fcdb651f0ef5e25169" [[package]] name = "accesskit" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "becf0eb5215b6ecb0a739c31c21bd83c4f326524c9b46b7e882d77559b60a529" +dependencies = [ + "enumn", + "serde", +] [[package]] name = "accesskit_consumer" @@ -77,12 +81,98 @@ dependencies = [ "winit", ] +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + [[package]] name = "adler2" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aeronet_io" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7bb8c8b6d0843602f22cae4be6671d868b284ea2887e91b80f1ad2d87721fb" +dependencies = [ + "anyhow", + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bytes", + "derive_more 2.0.1", + "log", +] + +[[package]] +name = "aeronet_steam" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bd10fca3cb706c3f54605ce860f9485b2d6cd98501dddbd49dd12f91888bdff" +dependencies = [ + "aeronet_io", + "anyhow", + "bevy_app", + "bevy_ecs", + "bevy_platform", + "blocking", + "bytes", + "derive_more 2.0.1", + "oneshot", + "steamworks", + "sync_wrapper", + "tracing", +] + +[[package]] +name = "aeronet_webtransport" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb24041bf1fc54387d5e7699e35f5476245761e0ca0f32e84ad80af2ba2b36cf" +dependencies = [ + "aeronet_io", + "anyhow", + "base64 0.22.1", + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bytes", + "cfg-if", + "derive_more 2.0.1", + "futures", + "gloo-timers", + "js-sys", + "spki", + "tokio", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", + "wtransport", + "x509-cert", + "xwt-core", + "xwt-web", + "xwt-wtransport", +] + [[package]] name = "ahash" version = "0.8.12" @@ -169,6 +259,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_log-sys" version = "0.3.2" @@ -207,9 +303,9 @@ checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" [[package]] name = "arboard" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1df21f715862ede32a0c525ce2ca4d52626bb0007f8c18b87a384503ac33e70" +checksum = "55f533f8e0af236ffe5eb979b99381df3258853f00ba2e44b6e1955292c75227" dependencies = [ "clipboard-win", "image", @@ -263,6 +359,45 @@ dependencies = [ "libloading", ] +[[package]] +name = "asn1-rs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 2.0.12", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "assert_type_match" version = "0.1.1" @@ -288,9 +423,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -364,9 +499,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "av1-grain" @@ -382,6 +517,25 @@ dependencies = [ "v_frame", ] +[[package]] +name = "avian2d" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7133547d9cc068d527d91fdcb8c8017c89b26ce05dbd30daef9f1ca64824495d" +dependencies = [ + "arrayvec", + "avian_derive", + "bevy", + "bevy_heavy", + "bevy_math", + "bevy_transform_interpolation", + "bitflags 2.9.1", + "derive_more 1.0.0", + "itertools 0.13.0", + "nalgebra", + "parry2d", +] + [[package]] name = "avian3d" version = "0.3.1" @@ -394,11 +548,12 @@ dependencies = [ "bevy_math", "bevy_transform_interpolation", "bitflags 2.9.1", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "nalgebra", "parry3d", "parry3d-f64", + "serde", "thread_local", ] @@ -416,13 +571,28 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98922d6a4cfbcb08820c69d8eeccc05bb1f29bfa06b4f5b1dbfe9a868bd7608e" +checksum = "2ea8ef51aced2b9191c08197f55450d830876d9933f8f48a429b354f1d496b42" dependencies = [ "arrayvec", ] +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + [[package]] name = "base64" version = "0.21.7" @@ -435,6 +605,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" + [[package]] name = "bevy" version = "0.16.1" @@ -522,6 +698,7 @@ dependencies = [ "bevy_derive", "bevy_ecs", "bevy_reflect", + "serde", ] [[package]] @@ -545,7 +722,7 @@ dependencies = [ "bevy_transform", "bevy_utils", "blake3", - "derive_more", + "derive_more 1.0.0", "downcast-rs 2.0.1", "either", "petgraph", @@ -602,7 +779,7 @@ dependencies = [ "bitflags 2.9.1", "blake3", "crossbeam-channel", - "derive_more", + "derive_more 1.0.0", "disqualified", "downcast-rs 2.0.1", "either", @@ -692,7 +869,7 @@ dependencies = [ "bevy_math", "bevy_reflect", "bytemuck", - "derive_more", + "derive_more 1.0.0", "encase", "serde", "thiserror 2.0.12", @@ -802,7 +979,7 @@ dependencies = [ "bitflags 2.9.1", "bumpalo", "concurrent-queue", - "derive_more", + "derive_more 1.0.0", "disqualified", "fixedbitset", "indexmap", @@ -871,6 +1048,32 @@ dependencies = [ "encase_derive_impl", ] +[[package]] +name = "bevy_enhanced_input" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a363bb40bfcf499006ea25a24a2bd751f5b036506f69abfbc3803ecdcc6ab0" +dependencies = [ + "bevy", + "bevy_enhanced_input_macros", + "bitflags 2.9.1", + "log", + "serde", + "variadics_please", +] + +[[package]] +name = "bevy_enhanced_input_macros" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc822dee1e63af3229e07fdd21a8525072a51b8861329c07d7f2896016f1bc1" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "bevy_fix_gltf_coordinate_system" version = "0.1.0" @@ -977,6 +1180,7 @@ checksum = "34ccc861fea2ff58c67f4df119512e204050bd7631a3a9c65e1a5e9d162cce28" dependencies = [ "bevy_math", "bevy_reflect", + "serde", ] [[package]] @@ -1019,8 +1223,9 @@ dependencies = [ "bevy_platform", "bevy_reflect", "bevy_utils", - "derive_more", + "derive_more 1.0.0", "log", + "serde", "smol_str", "thiserror 2.0.12", ] @@ -1134,7 +1339,7 @@ checksum = "68553e0090fe9c3ba066c65629f636bd58e4ebd9444fdba097b91af6cd3e243f" dependencies = [ "approx", "bevy_reflect", - "derive_more", + "derive_more 1.0.0", "glam", "itertools 0.14.0", "libm", @@ -1203,7 +1408,7 @@ dependencies = [ "bevy_window", "bitflags 2.9.1", "bytemuck", - "derive_more", + "derive_more 1.0.0", "fixedbitset", "nonmax", "offset-allocator", @@ -1274,7 +1479,7 @@ dependencies = [ "bevy_ptr", "bevy_reflect_derive", "bevy_utils", - "derive_more", + "derive_more 1.0.0", "disqualified", "downcast-rs 2.0.1", "erased-serde", @@ -1331,7 +1536,7 @@ dependencies = [ "bitflags 2.9.1", "bytemuck", "codespan-reporting", - "derive_more", + "derive_more 1.0.0", "downcast-rs 2.0.1", "encase", "fixedbitset", @@ -1382,7 +1587,7 @@ dependencies = [ "bevy_render", "bevy_transform", "bevy_utils", - "derive_more", + "derive_more 1.0.0", "serde", "thiserror 2.0.12", "uuid", @@ -1411,7 +1616,7 @@ dependencies = [ "bevy_window", "bitflags 2.9.1", "bytemuck", - "derive_more", + "derive_more 1.0.0", "fixedbitset", "nonmax", "radsort", @@ -1469,7 +1674,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "crossbeam-queue", - "derive_more", + "derive_more 1.0.0", "futures-channel", "futures-lite", "heapless", @@ -1535,7 +1740,7 @@ dependencies = [ "bevy_reflect", "bevy_tasks", "bevy_utils", - "derive_more", + "derive_more 1.0.0", "serde", "thiserror 2.0.12", ] @@ -1547,6 +1752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72c7c6c4e6a3d5415b3a29a17bd20c17cd0e2f068b96b24e263316d58d5346ea" dependencies = [ "bevy", + "serde", ] [[package]] @@ -1620,8 +1826,9 @@ dependencies = [ "bevy_utils", "bevy_window", "bytemuck", - "derive_more", + "derive_more 1.0.0", "nonmax", + "serde", "smallvec", "taffy", "thiserror 2.0.12", @@ -1638,6 +1845,19 @@ dependencies = [ "thread_local", ] +[[package]] +name = "bevy_web_keepalive" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f4be8bd4c2677d2fb8ce985d218f75ce862747ceaa810fef6f86cb57346daa" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_time", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "bevy_window" version = "0.16.1" @@ -1686,6 +1906,7 @@ dependencies = [ "cfg-if", "crossbeam-channel", "raw-window-handle", + "serde", "tracing", "wasm-bindgen", "web-sys", @@ -1693,6 +1914,16 @@ dependencies = [ "winit", ] +[[package]] +name = "bincode" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" +dependencies = [ + "serde", + "unty", +] + [[package]] name = "bindgen" version = "0.70.1" @@ -1807,6 +2038,15 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "block2" version = "0.5.1" @@ -1818,9 +2058,9 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ "async-channel", "async-task", @@ -1837,9 +2077,9 @@ checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b" [[package]] name = "bumpalo" -version = "3.18.1" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytemuck" @@ -1878,6 +2118,10 @@ name = "bytes" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +dependencies = [ + "portable-atomic", + "serde", +] [[package]] name = "calloop" @@ -1907,9 +2151,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.27" +version = "1.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" dependencies = [ "jobserver", "libc", @@ -1953,6 +2197,55 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + [[package]] name = "clang-sys" version = "1.8.1" @@ -2025,6 +2318,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "const_panic" version = "0.2.12" @@ -2168,6 +2467,15 @@ dependencies = [ "windows 0.54.0", ] +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.4.2" @@ -2228,9 +2536,20 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] [[package]] name = "csv" @@ -2304,6 +2623,20 @@ dependencies = [ "syn", ] +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "dasp_sample" version = "0.11.0" @@ -2328,6 +2661,44 @@ dependencies = [ "syn", ] +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "der_derive", + "flagset", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "deranged" version = "0.4.0" @@ -2374,7 +2745,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "derive_more-impl", + "derive_more-impl 1.0.0", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl 2.0.1", ] [[package]] @@ -2389,6 +2769,28 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + [[package]] name = "disjoint-sets" version = "0.4.2" @@ -2411,6 +2813,17 @@ dependencies = [ "objc2 0.6.1", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "disqualified" version = "1.0.0" @@ -2453,6 +2866,24 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +[[package]] +name = "dyn-clone" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" + +[[package]] +name = "dyn-eq" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d035d21af5cde1a6f5c7b444a5bf963520a9f142e5d06931178433d7d5388" + +[[package]] +name = "dyn-hash" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15401da73a9ed8c80e3b2d4dc05fe10e7b72d7243b9f614e516a44fa99986e88" + [[package]] name = "ecolor" version = "0.31.1" @@ -2533,6 +2964,18 @@ dependencies = [ "syn", ] +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "enumflags2" version = "0.7.12" @@ -2553,6 +2996,17 @@ dependencies = [ "syn", ] +[[package]] +name = "enumn" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "epaint" version = "0.31.1" @@ -2614,12 +3068,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -2694,6 +3148,12 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flagset" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" + [[package]] name = "flate2" version = "1.1.2" @@ -2781,6 +3241,30 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.31" @@ -2788,6 +3272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -2796,6 +3281,17 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + [[package]] name = "futures-io" version = "0.3.31" @@ -2815,6 +3311,53 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "fuzzy-matcher" version = "0.3.7" @@ -2824,6 +3367,16 @@ dependencies = [ "thread_local", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "gethostname" version = "0.4.3" @@ -2854,16 +3407,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] name = "gif" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" +checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" dependencies = [ "color_quant", "weezl", @@ -2903,6 +3458,12 @@ dependencies = [ "windows 0.61.3", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + [[package]] name = "gl_generator" version = "0.14.0" @@ -2932,6 +3493,18 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "glow" version = "0.16.0" @@ -2989,6 +3562,29 @@ dependencies = [ "gl_generator", ] +[[package]] +name = "governor" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbe789d04bf14543f03c4b60cd494148aa79438c8440ae7d81a7778147745c3" +dependencies = [ + "cfg-if", + "dashmap", + "futures-sink", + "futures-timer", + "futures-util", + "getrandom 0.3.3", + "hashbrown 0.15.4", + "nonzero_ext", + "parking_lot", + "portable-atomic", + "quanta", + "rand 0.9.1", + "smallvec", + "spinning_top", + "web-time", +] + [[package]] name = "gpu-alloc" version = "0.6.0" @@ -3069,13 +3665,10 @@ dependencies = [ [[package]] name = "happy_feet" version = "0.1.0" -source = "git+https://github.com/rustunit/happy_feet.git?rev=ecfecc6243862bc2bc64dcadfd0efd21c766ab5b#ecfecc6243862bc2bc64dcadfd0efd21c766ab5b" +source = "git+https://github.com/rustunit/happy_feet.git?rev=e4e57c50ba5b5e0be5166e9e4eb629dc1d616a0d#e4e57c50ba5b5e0be5166e9e4eb629dc1d616a0d" dependencies = [ "avian3d", "bevy", - "itertools 0.14.0", - "rand 0.9.1", - "smallvec", ] [[package]] @@ -3142,6 +3735,7 @@ dependencies = [ "bevy_sprite3d", "bevy_trenchbroom", "happy_feet", + "lightyear", "nil 0.14.0", "rand 0.8.5", "ron", @@ -3174,12 +3768,149 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" +[[package]] +name = "httlib-huffman" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a9fcbcc408c5526c3ab80d534e5c86e7967c1fb7aa0a8c76abd1edc27deb877" + +[[package]] +name = "iana-time-zone" +version = "0.1.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.61.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + [[package]] name = "image" version = "0.25.6" @@ -3205,9 +3936,9 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d75c7014ddab93c232bc6bb9f64790d3dfd1d605199acd4b40b6d69e691e9f" +checksum = "f6970fe7a5300b4b42e62c52efa0187540a5bef546c60edaf554ef595d2e6f0b" dependencies = [ "byteorder-lite", "quick-error", @@ -3230,9 +3961,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown 0.15.4", @@ -3265,6 +3996,15 @@ dependencies = [ "libc", ] +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + [[package]] name = "interpolate_name" version = "0.2.4" @@ -3286,6 +4026,17 @@ dependencies = [ "mach2", ] +[[package]] +name = "io-uring" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "itertools" version = "0.12.1" @@ -3353,9 +4104,9 @@ dependencies = [ [[package]] name = "jpeg-decoder" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" +checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" [[package]] name = "js-sys" @@ -3405,6 +4156,32 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +[[package]] +name = "leafwing-input-manager" +version = "0.17.0" +source = "git+https://github.com/cBournhonesque/leafwing-input-manager/?branch=cb%2Foverride-state-function#604dbd62ffcf56c8295371d2ecb3a6bda28406e2" +dependencies = [ + "bevy", + "dyn-clone", + "dyn-eq", + "dyn-hash", + "itertools 0.14.0", + "leafwing_input_manager_macros", + "serde", + "serde_flexitos", +] + +[[package]] +name = "leafwing_input_manager_macros" +version = "0.17.0" +source = "git+https://github.com/cBournhonesque/leafwing-input-manager/?branch=cb%2Foverride-state-function#604dbd62ffcf56c8295371d2ecb3a6bda28406e2" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "lebe" version = "0.5.2" @@ -3424,15 +4201,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.173" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8cfeafaffdbc32176b64fb251369d52ea9f0a8fbc6f8759edffef7b525d64bb" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libfuzzer-sys" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf78f52d400cf2d84a3a973a78a592b4adc535739e0a5597a0da6f0c357adc75" +checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" dependencies = [ "arbitrary", "cc", @@ -3456,9 +4233,9 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags 2.9.1", "libc", @@ -3475,6 +4252,498 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "lightyear" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "aeronet_io", + "bevy_app", + "bevy_ecs", + "bevy_web_keepalive", + "console_error_panic_hook", + "document-features", + "lightyear_aeronet", + "lightyear_avian2d", + "lightyear_avian3d", + "lightyear_connection", + "lightyear_core", + "lightyear_frame_interpolation", + "lightyear_inputs", + "lightyear_inputs_bei", + "lightyear_inputs_leafwing", + "lightyear_inputs_native", + "lightyear_interpolation", + "lightyear_link", + "lightyear_messages", + "lightyear_netcode", + "lightyear_prediction", + "lightyear_replication", + "lightyear_serde", + "lightyear_steam", + "lightyear_sync", + "lightyear_transport", + "lightyear_udp", + "lightyear_utils", + "lightyear_webtransport", + "serde", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "lightyear_aeronet" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "aeronet_io", + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "lightyear_link", + "tracing", +] + +[[package]] +name = "lightyear_avian2d" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "avian2d", + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_transform", + "bevy_utils", + "lightyear_core", + "lightyear_frame_interpolation", + "lightyear_interpolation", + "lightyear_link", + "lightyear_prediction", + "lightyear_replication", + "tracing", +] + +[[package]] +name = "lightyear_avian3d" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "avian3d", + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_transform", + "bevy_utils", + "lightyear_core", + "lightyear_frame_interpolation", + "lightyear_interpolation", + "lightyear_link", + "lightyear_prediction", + "lightyear_replication", + "tracing", +] + +[[package]] +name = "lightyear_connection" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bytes", + "lightyear_core", + "lightyear_link", + "lightyear_serde", + "serde", + "smallvec", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "lightyear_core" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_derive", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bevy_time", + "chrono", + "lightyear_serde", + "lightyear_utils", + "serde", + "tracing", +] + +[[package]] +name = "lightyear_frame_interpolation" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_time", + "bevy_transform", + "lightyear_connection", + "lightyear_core", + "lightyear_interpolation", + "lightyear_replication", + "tracing", +] + +[[package]] +name = "lightyear_inputs" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "lightyear_connection", + "lightyear_core", + "lightyear_interpolation", + "lightyear_link", + "lightyear_messages", + "lightyear_replication", + "lightyear_sync", + "lightyear_transport", + "serde", + "tracing", +] + +[[package]] +name = "lightyear_inputs_bei" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_enhanced_input", + "bevy_platform", + "bevy_reflect", + "lightyear_connection", + "lightyear_core", + "lightyear_inputs", + "lightyear_utils", + "serde", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "lightyear_inputs_leafwing" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "leafwing-input-manager", + "lightyear_core", + "lightyear_inputs", + "serde", + "tracing", +] + +[[package]] +name = "lightyear_inputs_native" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "lightyear_core", + "lightyear_inputs", + "serde", + "tracing", +] + +[[package]] +name = "lightyear_interpolation" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_derive", + "bevy_ecs", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_time", + "bevy_utils", + "lightyear_connection", + "lightyear_core", + "lightyear_messages", + "lightyear_replication", + "lightyear_serde", + "lightyear_sync", + "lightyear_utils", + "serde", + "tracing", +] + +[[package]] +name = "lightyear_link" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bytes", + "lightyear_core", + "lightyear_utils", + "rand 0.9.1", + "tracing", +] + +[[package]] +name = "lightyear_messages" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bytes", + "lightyear_connection", + "lightyear_core", + "lightyear_link", + "lightyear_serde", + "lightyear_transport", + "lightyear_utils", + "serde", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "lightyear_netcode" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "aeronet_io", + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bevy_time", + "bytes", + "chacha20poly1305", + "lightyear_connection", + "lightyear_core", + "lightyear_link", + "lightyear_serde", + "lightyear_transport", + "lightyear_utils", + "no_std_io2", + "rand 0.9.1", + "thiserror 2.0.12", + "tracing", + "web-time", +] + +[[package]] +name = "lightyear_prediction" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_time", + "lightyear_connection", + "lightyear_core", + "lightyear_frame_interpolation", + "lightyear_interpolation", + "lightyear_link", + "lightyear_messages", + "lightyear_replication", + "lightyear_serde", + "lightyear_sync", + "lightyear_utils", + "parking_lot", + "seahash", + "serde", + "tracing", +] + +[[package]] +name = "lightyear_replication" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "avian2d", + "avian3d", + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_ptr", + "bevy_reflect", + "bevy_time", + "bevy_transform", + "bytes", + "dashmap", + "lightyear_connection", + "lightyear_core", + "lightyear_link", + "lightyear_messages", + "lightyear_serde", + "lightyear_transport", + "lightyear_utils", + "serde", + "smallvec", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "lightyear_serde" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_derive", + "bevy_ecs", + "bevy_platform", + "bevy_ptr", + "bevy_reflect", + "bincode", + "bytes", + "no_std_io2", + "serde", + "thiserror 2.0.12", + "tracing", + "variadics_please", +] + +[[package]] +name = "lightyear_steam" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "aeronet_io", + "aeronet_steam", + "bevy_app", + "bevy_ecs", + "lightyear_aeronet", + "lightyear_connection", + "lightyear_core", + "lightyear_link", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "lightyear_sync" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_reflect", + "bevy_time", + "bevy_utils", + "lightyear_connection", + "lightyear_core", + "lightyear_link", + "lightyear_messages", + "lightyear_serde", + "lightyear_transport", + "lightyear_utils", + "serde", + "tracing", +] + +[[package]] +name = "lightyear_transport" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bevy_time", + "bevy_utils", + "bytes", + "crossbeam-channel", + "enum_dispatch", + "governor", + "indexmap", + "lightyear_connection", + "lightyear_core", + "lightyear_link", + "lightyear_serde", + "lightyear_utils", + "nonzero_ext", + "ringbuffer", + "serde", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "lightyear_udp" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "aeronet_io", + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bytes", + "lightyear_core", + "lightyear_link", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "lightyear_utils" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "hashbrown 0.15.4", + "lightyear_serde", + "paste", + "seahash", +] + +[[package]] +name = "lightyear_webtransport" +version = "0.21.1" +source = "git+https://github.com/cBournhonesque/lightyear.git?rev=03cbf419a2c0595261b64420bc0332fc3fe1cc3f#03cbf419a2c0595261b64420bc0332fc3fe1cc3f" +dependencies = [ + "aeronet_io", + "aeronet_webtransport", + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "lightyear_aeronet", + "lightyear_link", + "thiserror 2.0.12", + "tracing", +] + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -3487,6 +4756,12 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + [[package]] name = "litrs" version = "0.4.1" @@ -3519,10 +4794,16 @@ dependencies = [ ] [[package]] -name = "mach2" -version = "0.4.2" +name = "lru-slab" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "mach2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" dependencies = [ "libc", ] @@ -3611,6 +4892,17 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + [[package]] name = "naga" version = "24.0.0" @@ -3667,6 +4959,7 @@ dependencies = [ "num-complex", "num-rational", "num-traits", + "serde", "simba", "typenum", ] @@ -3796,6 +5089,15 @@ dependencies = [ "libc", ] +[[package]] +name = "no_std_io2" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c2b9acd47481ab557a89a5665891be79e43cce8a29ad77aa9419d7be5a7c06a" +dependencies = [ + "memchr", +] + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -3818,6 +5120,12 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + [[package]] name = "noop_proc_macro" version = "0.3.0" @@ -3860,6 +5168,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", + "serde", ] [[package]] @@ -3911,18 +5220,19 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -4218,6 +5528,15 @@ dependencies = [ "objc2-foundation 0.2.2", ] +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + [[package]] name = "oboe" version = "0.6.1" @@ -4241,6 +5560,12 @@ dependencies = [ "cc", ] +[[package]] +name = "octets" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109983a091271ee8916076731ba5fdc9ee22fea871bc7c6ceab9bfd423eb1d99" + [[package]] name = "offset-allocator" version = "0.2.0" @@ -4260,12 +5585,39 @@ dependencies = [ "byteorder", ] +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "oneshot" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce411919553d3f9fa53a0880544cda985a112117a0444d5ff1e870a893d6ea" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + [[package]] name = "orbclient" version = "0.3.48" @@ -4328,6 +5680,31 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "parry2d" +version = "0.17.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87edd53b1639e011e4765eecfceb0fa2c486da696dcdcfbc9a38bfc3574fb7e0" +dependencies = [ + "approx", + "arrayvec", + "bitflags 2.9.1", + "downcast-rs 1.2.1", + "either", + "ena", + "log", + "nalgebra", + "num-derive", + "num-traits", + "ordered-float", + "rustc-hash 2.1.1", + "simba", + "slab", + "smallvec", + "spade", + "thiserror 1.0.69", +] + [[package]] name = "parry3d" version = "0.17.6" @@ -4348,6 +5725,7 @@ dependencies = [ "rayon", "rstar", "rustc-hash 2.1.1", + "serde", "simba", "slab", "smallvec", @@ -4375,6 +5753,7 @@ dependencies = [ "rayon", "rstar", "rustc-hash 2.1.1", + "serde", "simba", "slab", "smallvec", @@ -4394,6 +5773,25 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" +[[package]] +name = "pem" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +dependencies = [ + "base64 0.22.1", + "serde", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -4438,6 +5836,12 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "piper" version = "0.2.4" @@ -4483,6 +5887,17 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "portable-atomic" version = "1.11.1" @@ -4498,6 +5913,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -4530,9 +5954,9 @@ checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" [[package]] name = "prettyplease" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6837b9e10d61f45f987d50808f83d1ee3d206c66acf650c3e4ae2e1f6ddedf55" +checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" dependencies = [ "proc-macro2", "syn", @@ -4580,18 +6004,18 @@ dependencies = [ [[package]] name = "profiling" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" +checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" dependencies = [ "profiling-procmacros", ] [[package]] name = "profiling-procmacros" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" +checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" dependencies = [ "quote", "syn", @@ -4615,6 +6039,21 @@ dependencies = [ "hashbrown 0.14.5", ] +[[package]] +name = "quanta" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.1+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + [[package]] name = "quick-error" version = "2.0.1" @@ -4630,6 +6069,61 @@ dependencies = [ "memchr", ] +[[package]] +name = "quinn" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.1", + "rustls", + "socket2", + "thiserror 2.0.12", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +dependencies = [ + "bytes", + "getrandom 0.3.3", + "lru-slab", + "rand 0.9.1", + "ring", + "rustc-hash 2.1.1", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.12", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" version = "1.0.40" @@ -4641,9 +6135,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radsort" @@ -4769,9 +6263,9 @@ dependencies = [ [[package]] name = "ravif" -version = "0.11.12" +version = "0.11.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6a5f31fcf7500f9401fea858ea4ab5525c99f2322cfcee732c0e6c74208c0c6" +checksum = "5825c26fddd16ab9f515930d49028a630efec172e903483c94796cfe31893e6b" dependencies = [ "avif-serialize", "imgref", @@ -4782,6 +6276,15 @@ dependencies = [ "rgb", ] +[[package]] +name = "raw-cpuid" +version = "11.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +dependencies = [ + "bitflags 2.9.1", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -4814,6 +6317,19 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "rcgen" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" +dependencies = [ + "pem", + "ring", + "rustls-pki-types", + "time", + "yasna", +] + [[package]] name = "read-fonts" version = "0.29.3" @@ -4900,9 +6416,29 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] name = "rgb" -version = "0.8.50" +version = "0.8.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" +checksum = "a457e416a0f90d246a4c3288bd7a25b2304ca727f253f95be383dd17af56be8f" + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "ringbuffer" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df6368f71f205ff9c33c076d170dd56ebf68e8161c733c0caa07a7a5509ed53" [[package]] name = "robust" @@ -4949,6 +6485,12 @@ dependencies = [ "smallvec", ] +[[package]] +name = "rustc-demangle" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" + [[package]] name = "rustc-hash" version = "1.1.0" @@ -4961,6 +6503,15 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustix" version = "0.38.44" @@ -4987,6 +6538,62 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "rustls" +version = "0.23.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.21" @@ -5043,6 +6650,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -5068,6 +6684,35 @@ dependencies = [ "tiny-skia", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.9.1", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "self_cell" version = "1.2.0" @@ -5100,6 +6745,16 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_flexitos" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3323d093d7597660758b742dd7a1525539613f6182b306a4e1dd6e01a89bada9" +dependencies = [ + "erased-serde", + "serde", +] + [[package]] name = "serde_json" version = "1.0.140" @@ -5137,6 +6792,8 @@ dependencies = [ "bevy_sprite3d", "bevy_trenchbroom", "happy_feet", + "lightyear", + "lightyear_avian3d", "nil 0.14.0", "rand 0.8.5", "ron", @@ -5145,6 +6802,17 @@ dependencies = [ "steamworks", ] +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -5170,6 +6838,7 @@ dependencies = [ "bevy_sprite3d", "bevy_trenchbroom", "happy_feet", + "lightyear", "nil 0.14.0", "rand 0.8.5", "ron", @@ -5223,12 +6892,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "slotmap" @@ -5244,6 +6910,9 @@ name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +dependencies = [ + "serde", +] [[package]] name = "smart-default" @@ -5291,10 +6960,20 @@ dependencies = [ ] [[package]] -name = "spade" -version = "2.13.1" +name = "socket2" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ece03ff43cd2a9b57ebf776ea5e78bd30b3b4185a619f041079f4109f385034" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spade" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a14e31a007e9f85c32784b04f89e6e194bb252a4d41b4a8ccd9e77245d901c8c" dependencies = [ "hashbrown 0.15.4", "num-traits", @@ -5311,6 +6990,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + [[package]] name = "spirv" version = "0.3.0+sdk-1.3.268.0" @@ -5320,6 +7008,17 @@ dependencies = [ "bitflags 2.9.1", ] +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", + "sha2", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -5412,6 +7111,12 @@ dependencies = [ "syn", ] +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "svg_fmt" version = "0.4.5" @@ -5431,15 +7136,32 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.103" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sys-locale" version = "0.3.2" @@ -5621,6 +7343,16 @@ dependencies = [ "strict-num", ] +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.9.0" @@ -5636,6 +7368,56 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tls_codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" +dependencies = [ + "tls_codec_derive", + "zeroize", +] + +[[package]] +name = "tls_codec_derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio" +version = "1.46.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio", + "pin-project-lite", + "slab", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "toml" version = "0.8.23" @@ -5690,9 +7472,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", @@ -5860,6 +7642,45 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "uuid" version = "1.17.0" @@ -6170,6 +7991,31 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-sys-async-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65a1ea96a932ec2252276bc517eb4fccaebc0ecfea2faa49e242de769d188409" +dependencies = [ + "js-sys", + "tokio", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys-stream-utils" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90a913a6d558dbf153010d8add2f27bf5964427aa395299b57a7680a5e971cc7" +dependencies = [ + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "web-time" version = "1.1.0" @@ -6180,6 +8026,19 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-wt-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9be7bc7d2d53ad808ff3b3e967391ec3734932d8119320dfd96b13d89327dfc9" +dependencies = [ + "js-sys", + "paste", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "weezl" version = "0.1.10" @@ -6298,9 +8157,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.32" +version = "0.7.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" +checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" dependencies = [ "bytemuck", "safe_arch", @@ -6603,6 +8462,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -6924,6 +8792,49 @@ dependencies = [ "bitflags 2.9.1", ] +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "wtransport" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5e745c8789c20095c9061d292098d4106660efe2d172efd8ae7a369fe28e3e" +dependencies = [ + "bytes", + "pem", + "quinn", + "rcgen", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "rustls-pki-types", + "sha2", + "socket2", + "thiserror 2.0.12", + "time", + "tokio", + "tracing", + "url", + "wtransport-proto", + "x509-parser", +] + +[[package]] +name = "wtransport-proto" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a09d89a8dba201c2439d9d5eca55a0faa08909d69da50decdb5ec00be0ac504" +dependencies = [ + "httlib-huffman", + "octets", + "thiserror 2.0.12", + "url", +] + [[package]] name = "x11-dl" version = "2.21.0" @@ -6957,10 +8868,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" [[package]] -name = "xcursor" -version = "0.3.8" +name = "x509-cert" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "spki", + "tls_codec", +] + +[[package]] +name = "x509-parser" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror 2.0.12", + "time", +] + +[[package]] +name = "xcursor" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" [[package]] name = "xkbcommon-dl" @@ -6987,12 +8927,80 @@ version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" +[[package]] +name = "xwt-core" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "647e17b66bd49bfebe8fe73d327358432f298bb41227600f47fb07fa4f7c1eef" + +[[package]] +name = "xwt-web" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f80997b90d89451537f2866130f52b1e4be4d29cfadf9183081b24542f1abdf0" +dependencies = [ + "js-sys", + "thiserror 2.0.12", + "tokio", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "web-sys-async-io", + "web-sys-stream-utils", + "web-wt-sys", + "xwt-core", +] + +[[package]] +name = "xwt-wtransport" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8623c2ddff8a7321feb12b484094be0341a9203dc46eb4060fc2e852841d8786" +dependencies = [ + "thiserror 2.0.12", + "wtransport", + "xwt-core", +] + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + [[package]] name = "yazi" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zeno" version = "0.3.3" @@ -7001,18 +9009,92 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", @@ -7036,9 +9118,9 @@ dependencies = [ [[package]] name = "zune-jpeg" -version = "0.4.17" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f6fe2e33d02a98ee64423802e16df3de99c43e5cf5ff983767e1128b394c8ac" +checksum = "2c9e525af0a6a658e031e95f14b7f889976b74a11ba0eca5a5fc9ac8a1c43a6a" dependencies = [ "zune-core", ] diff --git a/Cargo.toml b/Cargo.toml index 5389598..037581c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,3 @@ - [workspace] resolver = "3" members = ["crates/*"] @@ -12,6 +11,7 @@ avian3d = { version = "0.3", default-features = false, features = [ "bevy_scene", "bevy_picking", # todo: Consider if this one is necessary "parallel", + "serialize", ] } bevy = { version = "0.16.0", features = ["track_location"] } bevy-inspector-egui = { version = "0.31" } @@ -23,13 +23,23 @@ bevy_common_assets = { version = "0.13.0", features = ["ron"] } bevy_debug_log = "0.6.0" bevy_sprite3d = "5.0.0" bevy_trenchbroom = { version = "0.8.1", features = ["avian"] } -happy_feet = { git = "https://github.com/rustunit/happy_feet.git", rev = "ecfecc6243862bc2bc64dcadfd0efd21c766ab5b" } +happy_feet = { git = "https://github.com/rustunit/happy_feet.git", rev = "e4e57c50ba5b5e0be5166e9e4eb629dc1d616a0d" } +lightyear = { git = "https://github.com/cBournhonesque/lightyear.git", rev = "03cbf419a2c0595261b64420bc0332fc3fe1cc3f", default-features = false, features = [ + "interpolation", + "netcode", + "replication", + "std", + "steam", + "udp", +] } +lightyear_avian3d = { git = "https://github.com/cBournhonesque/lightyear.git", rev = "03cbf419a2c0595261b64420bc0332fc3fe1cc3f" } nil = "0.14.0" rand = "=0.8.5" ron = "0.8" serde = { version = "1.0.219", features = ["derive"] } shared = { path = "crates/shared" } steamworks = "0.11" + [profile.dev.package."*"] opt-level = 3 diff --git a/crates/client/Cargo.toml b/crates/client/Cargo.toml index 7246067..4692710 100644 --- a/crates/client/Cargo.toml +++ b/crates/client/Cargo.toml @@ -5,6 +5,7 @@ edition = "2024" build = "build.rs" [features] +default = ["lightyear/client"] dbg = ["avian3d/debug-plugin", "dep:bevy-inspector-egui", "shared/dbg"] [dependencies] @@ -20,6 +21,7 @@ bevy_debug_log = { workspace = true } bevy_sprite3d = { workspace = true } bevy_trenchbroom = { workspace = true } happy_feet = { workspace = true } +lightyear = { workspace = true } nil = { workspace = true } rand = { workspace = true } ron = { workspace = true } diff --git a/crates/client/src/client.rs b/crates/client/src/client.rs new file mode 100644 index 0000000..6a927d3 --- /dev/null +++ b/crates/client/src/client.rs @@ -0,0 +1,35 @@ +use bevy::prelude::*; +use lightyear::{ + netcode::Key, + prelude::{client::NetcodeConfig, *}, +}; +use std::net::{IpAddr, Ipv4Addr, SocketAddr}; + +pub fn plugin(app: &mut App) { + app.add_systems(Startup, temp_connect_on_startup); +} + +fn temp_connect_on_startup(mut commands: Commands) -> Result { + let client_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 25564); + let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 25565); + let auth = Authentication::Manual { + server_addr, + client_id: 0, + private_key: Key::default(), + protocol_id: 0, + }; + commands + .spawn(( + Name::from("Client"), + Client::default(), + LocalAddr(client_addr), + PeerAddr(server_addr), + Link::new(None), + ReplicationReceiver::default(), + client::NetcodeClient::new(auth, NetcodeConfig::default())?, + UdpIo::default(), + )) + .trigger(Connect); + + Ok(()) +} diff --git a/crates/client/src/main.rs b/crates/client/src/main.rs index 2589cc7..ef7afbc 100644 --- a/crates/client/src/main.rs +++ b/crates/client/src/main.rs @@ -1,3 +1,4 @@ +mod client; mod debug; mod steam; mod ui; @@ -16,8 +17,10 @@ use bevy_trenchbroom::prelude::*; use bevy_ui_gradients::UiGradientsPlugin; use camera::MainCamera; use heads_database::HeadDatabaseAsset; +use lightyear::prelude::client::ClientPlugins; use loading_assets::AudioAssets; use shared::*; +use std::time::Duration; use utils::{billboards, sprite_3d_animation, squish_animation, trail}; fn main() { @@ -58,6 +61,9 @@ fn main() { .auto_open_threshold(bevy::log::tracing::level_filters::LevelFilter::OFF), ); app.add_plugins(PhysicsPlugins::default()); + app.add_plugins(ClientPlugins { + tick_duration: Duration::from_secs_f64(1.0 / 60.0), + }); app.add_plugins(Sprite3dPlugin); app.add_plugins(TrenchBroomPlugins( TrenchBroomConfig::new("hedz").icon(None), @@ -87,9 +93,11 @@ fn main() { app.add_plugins(player::plugin); app.add_plugins(gates::plugin); app.add_plugins(platforms::plugin); + app.add_plugins(protocol::plugin); app.add_plugins(movables::plugin); app.add_plugins(billboards::plugin); app.add_plugins(aim::plugin); + app.add_plugins(client::plugin); app.add_plugins(npc::plugin); app.add_plugins(keys::plugin); app.add_plugins(squish_animation::plugin); @@ -106,7 +114,7 @@ fn main() { app.add_plugins(hitpoints::plugin); app.add_plugins(cash_heal::plugin); app.add_plugins(debug::plugin); - app.add_plugins(utils::observers::plugin); + app.add_plugins(utils::plugin); app.add_plugins(water::plugin); app.add_plugins(head_drop::plugin); app.add_plugins(trail::plugin); diff --git a/crates/client/src/ui/pause.rs b/crates/client/src/ui/pause.rs index 1ff3eb3..ad32b32 100644 --- a/crates/client/src/ui/pause.rs +++ b/crates/client/src/ui/pause.rs @@ -1,8 +1,7 @@ +use crate::GameState; use bevy::{color::palettes::css::BLACK, prelude::*}; use shared::{HEDZ_GREEN, HEDZ_PURPLE, control::CharacterInputEnabled, loading_assets::UIAssets}; -use crate::GameState; - #[derive(States, Default, Clone, Eq, PartialEq, Debug, Hash)] #[states(scoped_entities)] enum PauseMenuState { diff --git a/crates/server/Cargo.toml b/crates/server/Cargo.toml index 005f124..5564d3a 100644 --- a/crates/server/Cargo.toml +++ b/crates/server/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" edition = "2024" [features] +default = ["lightyear/server"] dbg = ["avian3d/debug-plugin", "dep:bevy-inspector-egui", "shared/dbg"] [dependencies] @@ -19,6 +20,8 @@ bevy_debug_log = { workspace = true } bevy_sprite3d = { workspace = true } bevy_trenchbroom = { workspace = true } happy_feet = { workspace = true } +lightyear = { workspace = true } +lightyear_avian3d = { workspace = true } nil = { workspace = true } rand = { workspace = true } ron = { workspace = true } diff --git a/crates/server/src/main.rs b/crates/server/src/main.rs index 9076264..f5b9b75 100644 --- a/crates/server/src/main.rs +++ b/crates/server/src/main.rs @@ -6,9 +6,13 @@ use bevy_sprite3d::Sprite3dPlugin; use bevy_trenchbroom::prelude::*; use bevy_ui_gradients::UiGradientsPlugin; use heads_database::HeadDatabaseAsset; +use lightyear::prelude::server::ServerPlugins; use shared::*; +use std::time::Duration; use utils::{billboards, sprite_3d_animation, squish_animation, trail}; +mod server; + fn main() { let mut app = App::new(); @@ -44,6 +48,9 @@ fn main() { bevy_debug_log::LogViewerPlugin::default() .auto_open_threshold(bevy::log::tracing::level_filters::LevelFilter::OFF), ); + app.add_plugins(ServerPlugins { + tick_duration: Duration::from_secs_f32(1.0 / 60.0), + }); app.add_plugins(PhysicsPlugins::default()); app.add_plugins(Sprite3dPlugin); app.add_plugins(TrenchBroomPlugins( @@ -77,6 +84,8 @@ fn main() { app.add_plugins(movables::plugin); app.add_plugins(billboards::plugin); app.add_plugins(aim::plugin); + app.add_plugins(protocol::plugin); + app.add_plugins(server::plugin); app.add_plugins(npc::plugin); app.add_plugins(keys::plugin); app.add_plugins(squish_animation::plugin); @@ -92,7 +101,7 @@ fn main() { app.add_plugins(heads::plugin); app.add_plugins(hitpoints::plugin); app.add_plugins(cash_heal::plugin); - app.add_plugins(utils::observers::plugin); + app.add_plugins(utils::plugin); app.add_plugins(water::plugin); app.add_plugins(head_drop::plugin); app.add_plugins(trail::plugin); diff --git a/crates/server/src/server.rs b/crates/server/src/server.rs new file mode 100644 index 0000000..53011f2 --- /dev/null +++ b/crates/server/src/server.rs @@ -0,0 +1,45 @@ +use bevy::prelude::*; +use lightyear::prelude::{ + server::{NetcodeConfig, NetcodeServer, ServerUdpIo}, + *, +}; +use shared::utils::commands::IsServer; +use std::net::{IpAddr, Ipv4Addr, SocketAddr}; + +pub fn plugin(app: &mut App) { + app.init_resource::(); + + app.add_systems(Startup, start_server); + app.add_observer(handle_new_client); +} + +fn handle_new_client( + trigger: Trigger, + mut commands: Commands, + id: Query<&PeerAddr>, +) -> Result { + let id = id.get(trigger.target())?; + + info!("Client connected on IP: {}", id.ip()); + + commands + .entity(trigger.target()) + .insert(ReplicationSender::default()); + + Ok(()) +} + +fn start_server(mut commands: Commands) -> Result { + let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 25565); + + commands + .spawn(( + Name::from("Server"), + LocalAddr(server_addr), + ServerUdpIo::default(), + NetcodeServer::new(NetcodeConfig::default()), + )) + .trigger(server::Start); + + Ok(()) +} diff --git a/crates/shared/Cargo.toml b/crates/shared/Cargo.toml index 76b8cb9..7336626 100644 --- a/crates/shared/Cargo.toml +++ b/crates/shared/Cargo.toml @@ -19,6 +19,7 @@ bevy_debug_log = { workspace = true } bevy_sprite3d = { workspace = true } bevy_trenchbroom = { workspace = true } happy_feet = { workspace = true } +lightyear = { workspace = true } nil = { workspace = true } rand = { workspace = true } ron = { workspace = true } diff --git a/crates/shared/src/abilities/arrow.rs b/crates/shared/src/abilities/arrow.rs index 17ec2dd..1434eab 100644 --- a/crates/shared/src/abilities/arrow.rs +++ b/crates/shared/src/abilities/arrow.rs @@ -58,11 +58,15 @@ fn on_trigger_arrow( state.rot.mul_quat(Quat::from_rotation_y(PI)) }; - let mut t = Transform::from_translation(state.pos).with_rotation(rotation); - t.translation += t.forward().as_vec3() * 2.; + let mut transform = Transform::from_translation(state.pos).with_rotation(rotation); + transform.translation += transform.forward().as_vec3() * 2.; let damage = heads_db.head_stats(state.head).damage; - commands.spawn((Name::new("projectile-arrow"), ArrowProjectile { damage }, t)); + commands.spawn(( + Name::new("projectile-arrow"), + ArrowProjectile { damage }, + transform, + )); } fn update( diff --git a/crates/shared/src/abilities/curver.rs b/crates/shared/src/abilities/curver.rs index 2a20180..dc8ccf7 100644 --- a/crates/shared/src/abilities/curver.rs +++ b/crates/shared/src/abilities/curver.rs @@ -6,12 +6,17 @@ use crate::{ hitpoints::Hit, loading_assets::GameAssets, physics_layers::GameLayer, + protocol::GltfSceneRoot, tb_entities::EnemySpawn, - utils::{auto_rotate::AutoRotation, global_observer, sprite_3d_animation::AnimationTimer}, + utils::{ + auto_rotate::AutoRotation, commands::CommandExt, global_observer, + sprite_3d_animation::AnimationTimer, + }, }; use avian3d::prelude::*; use bevy::{pbr::NotShadowCaster, prelude::*}; use bevy_sprite3d::{Sprite3dBuilder, Sprite3dParams}; +use lightyear::prelude::{NetworkTarget, Replicate}; use std::f32::consts::PI; const MAX_SHOT_AGES: f32 = 15.; @@ -58,8 +63,6 @@ fn on_trigger_missile( query_transform: Query<&Transform>, time: Res