From 539281e3a0a73c5058b017808ecf6944ffd4cb30 Mon Sep 17 00:00:00 2001 From: core Date: Wed, 17 Jun 2026 18:11:05 -0400 Subject: [PATCH] feat: native --- Cargo.lock | 838 +----------------- crates/unified/Cargo.toml | 31 +- crates/unified/src/cli.rs | 8 - crates/unified/src/client/interpolation.rs | 125 --- crates/unified/src/client/mod.rs | 6 - crates/unified/src/client/parts.rs | 7 - .../src/client/planet/incoming_planets.rs | 9 +- crates/unified/src/client/server_clock.rs | 67 -- crates/unified/src/main.rs | 16 +- crates/unified/src/server/mod.rs | 18 +- crates/unified/src/server/planets.rs | 3 +- crates/unified/src/shared/attachment.rs | 7 +- crates/unified/src/shared/config/planet.rs | 3 +- crates/unified/src/shared/ecs.rs | 3 +- crates/unified/src/shared/ecs/thruster.rs | 3 +- crates/unified/src/shared/mod.rs | 3 +- crates/unified/src/shared/net.rs | 4 +- crates/unified/src/shared/network/mod.rs | 27 + crates/xtask/src/main.rs | 3 - crates/xtask/src/unified_web.rs | 29 - crates/xtask/src/util.rs | 30 - web/.gitignore | 23 - web/.npmrc | 1 - web/.vscode/extensions.json | 6 - web/.vscode/settings.json | 5 - web/README.md | 42 - web/bun.lock | 247 ------ web/package.json | 25 - web/src/app.d.ts | 13 - web/src/app.html | 12 - web/src/lib/index.ts | 9 - web/src/routes/+layout.svelte | 8 - web/src/routes/+page.svelte | 34 - web/src/routes/layout.css | 1 - web/static/assets | 1 - web/static/robots.txt | 3 - web/svelte.config.js | 17 - web/tsconfig.json | 20 - web/vite.config.ts | 5 - 39 files changed, 59 insertions(+), 1653 deletions(-) delete mode 100644 crates/unified/src/client/interpolation.rs delete mode 100644 crates/unified/src/client/server_clock.rs create mode 100644 crates/unified/src/shared/network/mod.rs delete mode 100644 crates/xtask/src/unified_web.rs delete mode 100644 web/.gitignore delete mode 100644 web/.npmrc delete mode 100644 web/.vscode/extensions.json delete mode 100644 web/.vscode/settings.json delete mode 100644 web/README.md delete mode 100644 web/bun.lock delete mode 100644 web/package.json delete mode 100644 web/src/app.d.ts delete mode 100644 web/src/app.html delete mode 100644 web/src/lib/index.ts delete mode 100644 web/src/routes/+layout.svelte delete mode 100644 web/src/routes/+page.svelte delete mode 100644 web/src/routes/layout.css delete mode 120000 web/static/assets delete mode 100644 web/static/robots.txt delete mode 100644 web/svelte.config.js delete mode 100644 web/tsconfig.json delete mode 100644 web/vite.config.ts diff --git a/Cargo.lock b/Cargo.lock index a5f9618957335f81cb85fdc9d154ad6e9d134cc2..0ad6710c8470f35efb494657335f95ccabe89f12 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -235,45 +235,6 @@ dependencies = [ "libloading", ] -[[package]] -name = "asn1-rs" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8" -dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror 2.0.18", - "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 2.0.117", - "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 2.0.117", -] - [[package]] name = "assert_type_match" version = "0.1.1" @@ -446,28 +407,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "aws-lc-rs" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" -dependencies = [ - "aws-lc-sys", - "zeroize", -] - -[[package]] -name = "aws-lc-sys" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" -dependencies = [ - "cc", - "cmake", - "dunce", - "fs_extra", -] - [[package]] name = "base64" version = "0.22.1" @@ -820,36 +759,6 @@ dependencies = [ "encase_derive_impl", ] -[[package]] -name = "bevy_feathers" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cb29be8f8443c5cc44e1c4710bbe02877e73703c60228ca043f20529a5496c6" -dependencies = [ - "accesskit", - "bevy_a11y", - "bevy_app", - "bevy_asset", - "bevy_camera", - "bevy_color", - "bevy_derive", - "bevy_ecs", - "bevy_input_focus", - "bevy_log", - "bevy_math", - "bevy_picking", - "bevy_platform", - "bevy_reflect", - "bevy_render", - "bevy_shader", - "bevy_text", - "bevy_ui", - "bevy_ui_render", - "bevy_ui_widgets", - "bevy_window", - "smol_str", -] - [[package]] name = "bevy_gilrs" version = "0.18.1" @@ -1014,7 +923,6 @@ dependencies = [ "bevy_dev_tools", "bevy_diagnostic", "bevy_ecs", - "bevy_feathers", "bevy_gilrs", "bevy_gizmos", "bevy_gizmos_render", @@ -1024,7 +932,6 @@ dependencies = [ "bevy_log", "bevy_math", "bevy_mesh", - "bevy_pbr", "bevy_picking", "bevy_platform", "bevy_post_process", @@ -1047,27 +954,6 @@ dependencies = [ "bevy_winit", ] -[[package]] -name = "bevy_light" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d9d2ac64390a9baacb3c0fa0f5456ac1553959d5a387874c102a09aab8b92cc" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_camera", - "bevy_color", - "bevy_ecs", - "bevy_image", - "bevy_math", - "bevy_mesh", - "bevy_platform", - "bevy_reflect", - "bevy_transform", - "bevy_utils", - "tracing", -] - [[package]] name = "bevy_log" version = "0.18.1" @@ -1128,9 +1014,7 @@ dependencies = [ "bevy_asset", "bevy_derive", "bevy_ecs", - "bevy_image", "bevy_math", - "bevy_mikktspace", "bevy_platform", "bevy_reflect", "bevy_transform", @@ -1144,49 +1028,6 @@ dependencies = [ "wgpu-types", ] -[[package]] -name = "bevy_mikktspace" -version = "0.17.0-dev" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef8e4b7e61dfe7719bb03c884dc270cd46a82efb40f93e9933b990c5c190c59" - -[[package]] -name = "bevy_pbr" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ab6944ffc6fd71604c0fbca68cc3e2a3654edfcdbfd232f9d8b88e3d20fdc0" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_camera", - "bevy_color", - "bevy_core_pipeline", - "bevy_derive", - "bevy_diagnostic", - "bevy_ecs", - "bevy_image", - "bevy_light", - "bevy_log", - "bevy_math", - "bevy_mesh", - "bevy_platform", - "bevy_reflect", - "bevy_render", - "bevy_shader", - "bevy_transform", - "bevy_utils", - "bitflags 2.11.1", - "bytemuck", - "derive_more", - "fixedbitset", - "nonmax", - "offset-allocator", - "smallvec", - "static_assertions", - "thiserror 2.0.18", - "tracing", -] - [[package]] name = "bevy_picking" version = "0.18.1" @@ -1645,7 +1486,6 @@ dependencies = [ "bevy_input", "bevy_input_focus", "bevy_math", - "bevy_picking", "bevy_platform", "bevy_reflect", "bevy_sprite", @@ -1659,7 +1499,6 @@ dependencies = [ "taffy", "thiserror 2.0.18", "tracing", - "uuid", ] [[package]] @@ -1693,26 +1532,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "bevy_ui_widgets" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a63cb818b0de41bdb14990e0ce1aaaa347f871750ab280f80c427e83d72712" -dependencies = [ - "accesskit", - "bevy_a11y", - "bevy_app", - "bevy_camera", - "bevy_ecs", - "bevy_input", - "bevy_input_focus", - "bevy_log", - "bevy_math", - "bevy_picking", - "bevy_reflect", - "bevy_ui", -] - [[package]] name = "bevy_utils" version = "0.18.1" @@ -1798,7 +1617,6 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" dependencies = [ - "bytemuck", "serde_core", ] @@ -2102,15 +1920,6 @@ dependencies = [ "web-time 0.2.4", ] -[[package]] -name = "cmake" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" -dependencies = [ - "cc", -] - [[package]] name = "cobs" version = "0.3.0" @@ -2405,19 +2214,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -2573,29 +2369,6 @@ dependencies = [ "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 = "deranged" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" -dependencies = [ - "powerfmt", -] - [[package]] name = "derive_builder" version = "0.11.2" @@ -2816,12 +2589,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - [[package]] name = "dyn-clone" version = "1.0.20" @@ -3150,21 +2917,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fragile" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8878864ba14bb86e818a412bfd6f18f9eabd4ec0f008a28e8f7eb61db532fcf9" -dependencies = [ - "futures-core", -] - -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "fsevent-sys" version = "4.1.0" @@ -3174,21 +2926,6 @@ dependencies = [ "libc", ] -[[package]] -name = "futures" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.32" @@ -3196,7 +2933,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", - "futures-sink", ] [[package]] @@ -3205,17 +2941,6 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" -[[package]] -name = "futures-executor" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - [[package]] name = "futures-io" version = "0.3.32" @@ -3246,12 +2971,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "futures-sink" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" - [[package]] name = "futures-task" version = "0.3.32" @@ -3264,13 +2983,9 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ - "futures-channel", "futures-core", - "futures-io", "futures-macro", - "futures-sink", "futures-task", - "memchr", "pin-project-lite", "slab", ] @@ -3312,10 +3027,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi", - "wasm-bindgen", ] [[package]] @@ -3325,11 +3038,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi 5.3.0", "wasip2", - "wasm-bindgen", ] [[package]] @@ -3339,13 +3050,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi 6.0.0", "rand_core 0.10.1", "wasip2", "wasip3", - "wasm-bindgen", ] [[package]] @@ -3382,17 +3091,6 @@ dependencies = [ "windows 0.62.2", ] -[[package]] -name = "gl_generator" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" -dependencies = [ - "khronos_api", - "log", - "xml-rs", -] - [[package]] name = "glam" version = "0.30.10" @@ -3441,27 +3139,6 @@ dependencies = [ "simba", ] -[[package]] -name = "glow" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "glutin_wgl_sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" -dependencies = [ - "gl_generator", -] - [[package]] name = "good_lp" version = "1.15.1" @@ -3670,12 +3347,6 @@ version = "1.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec9d92d097f4749b64e8cc33d924d9f40a2d4eb91402b458014b781f5733d60f" -[[package]] -name = "httlib-huffman" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9fcbcc408c5526c3ab80d534e5c86e7967c1fb7aa0a8c76abd1edc27deb877" - [[package]] name = "http" version = "1.4.0" @@ -4002,29 +3673,12 @@ dependencies = [ ] [[package]] -name = "khronos-egl" -version = "6.0.0" +name = "konst" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" +checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" dependencies = [ - "libc", - "libloading", - "pkg-config", -] - -[[package]] -name = "khronos_api" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" - -[[package]] -name = "konst" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" -dependencies = [ - "konst_macro_rules", + "konst_macro_rules", ] [[package]] @@ -4197,12 +3851,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3bd0dd2cd90571056fdb71f6275fada10131182f84899f4b2a916e565d81d86" -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - [[package]] name = "malloc_buf" version = "0.0.6" @@ -4260,12 +3908,6 @@ dependencies = [ "paste", ] -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.8.9" @@ -4408,16 +4050,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "nonmax" version = "0.5.5" @@ -4473,16 +4105,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - [[package]] name = "num-complex" version = "0.4.6" @@ -4492,12 +4114,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-conv" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" - [[package]] name = "num-derive" version = "0.4.2" @@ -4509,15 +4125,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -4821,15 +4428,6 @@ dependencies = [ "nonmax", ] -[[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.4" @@ -4848,12 +4446,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - [[package]] name = "orbclient" version = "0.3.53" @@ -4983,16 +4575,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pem" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" -dependencies = [ - "base64", - "serde_core", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -5191,12 +4773,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - [[package]] name = "pp-rs" version = "0.2.1" @@ -5301,61 +4877,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash 2.1.2", - "rustls", - "socket2 0.6.4", - "thiserror 2.0.18", - "tokio", - "tracing", - "web-time 1.1.0", -] - -[[package]] -name = "quinn-proto" -version = "0.11.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" -dependencies = [ - "bytes", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.4", - "ring", - "rustc-hash 2.1.2", - "rustls", - "rustls-pki-types", - "slab", - "thiserror 2.0.18", - "tinyvec", - "tracing", - "web-time 1.1.0", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.6.4", - "tracing", - "windows-sys 0.60.2", -] - [[package]] name = "quote" version = "1.0.45" @@ -5486,19 +5007,6 @@ 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 = "rdst" version = "0.20.14" @@ -5620,33 +5128,14 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bda5b3ebbfacba2976a9825dac8cd57efadc2a55a98fc334fb504fa714d1200" dependencies = [ - "anyhow", - "async-channel", "bevy_ecs", "bytes", - "crossbeam", - "fragile", - "futures", "hmac-sha256", - "http", - "js-sys", "log", "octets", - "quinn", - "rcgen", "renet2", "renetcode2", - "rustls", - "rustls-pki-types", - "send_wrapper", - "time", - "tokio", "url", - "urlencoding", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "wtransport", ] [[package]] @@ -5659,20 +5148,6 @@ dependencies = [ "log", ] -[[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.17", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - [[package]] name = "robust" version = "1.2.0" @@ -5720,15 +5195,6 @@ dependencies = [ "semver", ] -[[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" @@ -5755,65 +5221,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "rustls" -version = "0.23.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" -dependencies = [ - "aws-lc-rs", - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" -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.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" -dependencies = [ - "web-time 1.1.0", - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" -dependencies = [ - "aws-lc-rs", - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "rustversion" version = "1.0.22" @@ -5847,15 +5254,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "schannel" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "scoped-tls" version = "1.0.1" @@ -5881,29 +5279,6 @@ dependencies = [ "tiny-skia", ] -[[package]] -name = "security-framework" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" -dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "self_cell" version = "1.2.2" @@ -5921,9 +5296,6 @@ name = "send_wrapper" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" -dependencies = [ - "futures-core", -] [[package]] name = "serde" @@ -6042,16 +5414,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - [[package]] name = "signature" version = "2.2.0" @@ -6182,26 +5544,6 @@ dependencies = [ "serde", ] -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "socket2" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "spade" version = "2.15.1" @@ -6276,10 +5618,6 @@ dependencies = [ "bevy_common_assets", "bevy_replicon", "bevy_replicon_renet2", - "console_error_panic_hook", - "ctrlc", - "getrandom 0.2.17", - "getrandom 0.4.2", "good_lp", "leafwing-input-manager", "pico-args", @@ -6288,11 +5626,7 @@ dependencies = [ "serde_json", "tokio", "tracing-subscriber", - "tracing-web", "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", "web-time 1.1.0", ] @@ -6520,37 +5854,6 @@ dependencies = [ "tikv-jemalloc-sys", ] -[[package]] -name = "time" -version = "0.3.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde_core", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" - -[[package]] -name = "time-macros" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" -dependencies = [ - "num-conv", - "time-core", -] - [[package]] name = "tiny-skia" version = "0.11.4" @@ -6617,26 +5920,7 @@ version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot", "pin-project-lite", - "signal-hook-registry", - "socket2 0.6.4", - "tokio-macros", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-macros" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", ] [[package]] @@ -6795,19 +6079,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "tracing-web" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e6a141feebd51f8d91ebfd785af50fca223c570b86852166caa3b141defe7c" -dependencies = [ - "js-sys", - "tracing-core", - "tracing-subscriber", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "ttf-parser" version = "0.25.1" @@ -6921,12 +6192,6 @@ dependencies = [ "rustc-hash 2.1.2", ] -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "url" version = "2.5.8" @@ -6939,12 +6204,6 @@ dependencies = [ "serde", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "utf-8" version = "0.7.6" @@ -7312,7 +6571,6 @@ dependencies = [ "cfg_aliases", "document-features", "hashbrown 0.16.1", - "js-sys", "log", "naga", "portable-atomic", @@ -7320,8 +6578,6 @@ dependencies = [ "raw-window-handle", "smallvec", "static_assertions", - "wasm-bindgen", - "web-sys", "wgpu-core", "wgpu-hal", "wgpu-types", @@ -7353,7 +6609,6 @@ dependencies = [ "smallvec", "thiserror 2.0.18", "wgpu-core-deps-apple", - "wgpu-core-deps-wasm", "wgpu-core-deps-windows-linux-android", "wgpu-hal", "wgpu-types", @@ -7368,15 +6623,6 @@ dependencies = [ "wgpu-hal", ] -[[package]] -name = "wgpu-core-deps-wasm" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1027dcf3b027a877e44819df7ceb0e2e98578830f8cd34cd6c3c7c2a7a50b7" -dependencies = [ - "wgpu-hal", -] - [[package]] name = "wgpu-core-deps-windows-linux-android" version = "27.0.0" @@ -7402,20 +6648,15 @@ dependencies = [ "cfg-if", "cfg_aliases", "core-graphics-types 0.2.0", - "glow", - "glutin_wgl_sys", "gpu-alloc", "gpu-allocator", "gpu-descriptor", "hashbrown 0.16.1", - "js-sys", - "khronos-egl", "libc", "libloading", "log", "metal", "naga", - "ndk-sys", "objc", "once_cell", "ordered-float", @@ -7428,8 +6669,6 @@ dependencies = [ "renderdoc-sys", "smallvec", "thiserror 2.0.18", - "wasm-bindgen", - "web-sys", "wgpu-types", "windows 0.58.0", "windows-core 0.58.0", @@ -8067,43 +7306,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" -[[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 0.5.10", - "thiserror 2.0.18", - "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.18", - "url", -] - [[package]] name = "x11-dl" version = "2.21.0" @@ -8136,23 +7338,6 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" -[[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.18", - "time", -] - [[package]] name = "xcursor" version = "0.3.10" @@ -8178,12 +7363,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" -[[package]] -name = "xml-rs" -version = "0.8.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" - [[package]] name = "xtask" version = "0.1.0" @@ -8198,15 +7377,6 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" -[[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" diff --git a/crates/unified/Cargo.toml b/crates/unified/Cargo.toml index bb5f757b732e5efe09625476d8bb657036dffa32..b3a9f90a68ff3afe15080d0d2ca9d522760b4756 100644 --- a/crates/unified/Cargo.toml +++ b/crates/unified/Cargo.toml @@ -4,49 +4,26 @@ description = "A game about floating through space" edition = "2024" version = "0.1.0" - [dependencies] -bevy = { workspace = true } +bevy = { workspace = true, features = ["x11", "wayland"] } avian2d = { workspace = true } bevy_common_assets = { workspace = true } tracing-subscriber = { workspace = true } serde = { workspace = true } rand = { workspace = true } -getrandom = { workspace = true } pico-args = { workspace = true } leafwing-input-manager = { workspace = true } good_lp = { workspace = true } web-time = { workspace = true } -bevy_replicon = { workspace = true, features = ["client"] } -bevy_replicon_renet2 = { workspace = true, features = ["client", "netcode"] } +bevy_replicon = { workspace = true, features = ["client", "server"] } +bevy_replicon_renet2 = { workspace = true, features = ["client", "netcode", "server", "native_transport"] } url = { workspace = true } serde_json = { workspace = true } - -[target.'cfg(not(target_arch = "wasm32"))'.dependencies] -ctrlc = { workspace = true } tokio = { version = "1", features = ["rt-multi-thread"] } -[target.'cfg(target_arch = "wasm32")'.dependencies] -wasm-bindgen = { workspace = true } -wasm-bindgen-futures = { workspace = true } -tracing-web = { workspace = true } -console_error_panic_hook = { workspace = true } -getrandom02 = { package = "getrandom", version = "0.2", features = ["js"] } -web-sys = { workspace = true, features = ["Window", "Response"] } - [features] native_dev = [ "bevy/file_watcher", "bevy/hotpatching", "bevy/dynamic_linking", - "native" -] -native = [ - "bevy/x11", - "bevy/wayland", - "bevy_replicon/server", - "bevy_replicon_renet2/server", - "bevy_replicon_renet2/native_transport", - "bevy_replicon_renet2/wt_server_transport" -] -wasm = ["getrandom/wasm_js", "bevy/webgl2", "bevy_replicon_renet2/wt_client_transport"] +] \ No newline at end of file diff --git a/crates/unified/src/cli.rs b/crates/unified/src/cli.rs index 1b96bf65aba94d573125e03d91686612f9a7ad95..883c01f5ad5c6f0d020733bd99799a799a9a5f3a 100644 --- a/crates/unified/src/cli.rs +++ b/crates/unified/src/cli.rs @@ -1,13 +1,7 @@ -#[cfg(not(any(feature = "native", feature = "wasm")))] -compile_error!("You need to enable one of native, wasm features"); -#[cfg(all(feature = "native", feature = "wasm"))] -compile_error!("You cannot enable both native and wasm features"); - pub enum StkArgs { Client { server: String, }, - #[cfg(not(target_arch = "wasm32"))] Server { management_bind: std::net::SocketAddr, native_bind: std::net::SocketAddr, @@ -19,7 +13,6 @@ pub enum StkArgs { } } -#[cfg(not(target_arch = "wasm32"))] pub fn parse_args() -> StkArgs { let mut pargs = pico_args::Arguments::from_env(); @@ -45,7 +38,6 @@ pub fn parse_args() -> StkArgs { server: pargs.value_from_str(["-s", "--server"]).unwrap(), } }, - #[cfg(not(target_arch = "wasm32"))] "server" => { StkArgs::Server { management_bind: pargs.value_from_str("--management-bind").unwrap(), diff --git a/crates/unified/src/client/interpolation.rs b/crates/unified/src/client/interpolation.rs deleted file mode 100644 index 46709cc6a748d065df89032b06891a7202573c03..0000000000000000000000000000000000000000 --- a/crates/unified/src/client/interpolation.rs +++ /dev/null @@ -1,125 +0,0 @@ -use std::collections::VecDeque; -use std::f64::consts::PI; -use std::time::{Duration}; -use avian2d::parry::transformation::utils::transform; -use bevy_replicon::client::confirm_history::ConfirmHistory; -use crate::client::components::{ServerClock, ServerTimeOffset}; -use crate::prelude::*; -use crate::shared::plugins::TICK_RATE; - -/// interpolation period in seconds -const INTERP: f64 = 0.150; - -pub fn interpolation_plugin(app: &mut App) { - app - .add_systems(Update, update_interpolation_info) - .add_systems(Update, sync_non_interpolated_transforms) - .add_systems(Update, do_interpolation); -} - -#[derive(Component, Debug)] -pub struct TranslationInterpolationInfo { - pub positions: VecDeque<(f64, Vec2)>, -} -#[derive(Component, Debug)] -pub struct RotationInterpolationInfo { - pub rotations: VecDeque<(f64, f64)> // time and rotation -} - -fn update_interpolation_info( - mut interpolation_pos_query: Query<(Entity, &Position, &mut TranslationInterpolationInfo, &ConfirmHistory), Changed>, - mut interpolation_rot_query: Query<(&Rotation, &AngularVelocity, &mut RotationInterpolationInfo, &ConfirmHistory), Changed>, - server_clock: Res, - server_time_offset: Res, -) { - for (entity, position, mut info, confirm_history) in interpolation_pos_query.iter_mut() { - let now = confirm_history.last_tick().get() as f64 / TICK_RATE - **server_time_offset; - info.positions.push_back((now, position.as_vec2())); - - let mut last_over_time = 0; - for (i, (time, _)) in info.positions.iter().enumerate() { - if *time < now - INTERP { - last_over_time = i; - } - } - if last_over_time > 0 { - info.positions.drain(..last_over_time); - } - } - for (rotation, angular_velocity, mut info, confirm_history) in interpolation_rot_query.iter_mut() { - let now = confirm_history.last_tick().get() as f64 / TICK_RATE - **server_time_offset; - let delta_rotation = angular_velocity.0.to_radians() / TICK_RATE; - let num_revolutions = (delta_rotation / (2.0*PI)).round(); - let mut rotation_offset = 0.0; - let rotation = rotation.as_radians() as f64; - if let Some((_, rotation)) = info.rotations.back() { - if delta_rotation + rotation >= PI { - rotation_offset = 2.0 * PI; - } else if delta_rotation + rotation < -PI { - rotation_offset = -2.0 * PI; - } - } - info.rotations.push_back((now, rotation + rotation_offset + num_revolutions*2.0*PI)); - - let mut last_over_time = 0; - for (i, (time, _)) in info.rotations.iter().enumerate() { - if *time < now - INTERP { - last_over_time = i; - } - } - if last_over_time > 0 { - info.rotations.drain(..last_over_time); - } - } -} -fn sync_non_interpolated_transforms( - mut query: Query<(&mut Transform, &Position), (Changed, Without)>, -) { - for (mut transform, position) in &mut query { - transform.translation = position.as_vec2().extend(0.0); - } -} -fn do_interpolation( - mut interpolation_query: Query<(Entity, &mut Transform, &mut TranslationInterpolationInfo, &RotationInterpolationInfo)>, - time: Res