From c3f6a120dfb797a3b606cff3ae54006fbfb136e2 Mon Sep 17 00:00:00 2001 From: Aubrey Taylor Date: Fri, 20 Dec 2024 04:32:26 -0600 Subject: [PATCH] remove warnings and proximity-client --- Cargo.lock | 1435 +-------------------------- Cargo.toml | 3 - out.opus | Bin 189 -> 0 bytes proximity-client/Cargo.toml | 15 - proximity-client/src/main.rs | 3 - proximity-client/src/webrtc-main.rs | 445 --------- src/protocol.rs | 3 +- src/server/prox.rs | 15 +- wyrmjewelbox.opus | Bin 3993796 -> 0 bytes 9 files changed, 20 insertions(+), 1899 deletions(-) delete mode 100644 out.opus delete mode 100644 proximity-client/Cargo.toml delete mode 100644 proximity-client/src/main.rs delete mode 100644 proximity-client/src/webrtc-main.rs delete mode 100644 wyrmjewelbox.opus diff --git a/Cargo.lock b/Cargo.lock index ed44fd7..6553e46 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,41 +17,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[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 = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -67,28 +32,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3aa2999eb46af81abb65c2d30d446778d7e613b60bbf4e174a027e80f90a3c14" -[[package]] -name = "alsa" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" -dependencies = [ - "alsa-sys", - "bitflags 2.6.0", - "cfg-if", - "libc", -] - -[[package]] -name = "alsa-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" -dependencies = [ - "libc", - "pkg-config", -] - [[package]] name = "anstyle" version = "1.0.10" @@ -104,12 +47,6 @@ dependencies = [ "backtrace", ] -[[package]] -name = "arc-swap" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" - [[package]] name = "array-init" version = "2.1.0" @@ -155,23 +92,6 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "async-trait" -version = "0.1.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - [[package]] name = "autocfg" version = "1.4.0" @@ -190,54 +110,15 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets 0.52.6", + "windows-targets", ] -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" -dependencies = [ - "bitflags 2.6.0", - "cexpr", - "clang-sys", - "itertools", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.90", -] - [[package]] name = "binrw" version = "0.14.1" @@ -262,12 +143,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.6.0" @@ -283,15 +158,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -325,53 +191,15 @@ dependencies = [ "spin", ] -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher", -] - [[package]] name = "cc" version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf" dependencies = [ - "jobserver", - "libc", "shlex", ] -[[package]] -name = "ccm" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae3c82e4355234767756212c570e29833699ab63e6ffd161887314cc5b43847" -dependencies = [ - "aead", - "cipher", - "ctr", - "subtle", -] - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - [[package]] name = "cfg-if" version = "1.0.0" @@ -384,27 +212,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - [[package]] name = "clap" version = "4.5.23" @@ -441,22 +248,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "core-foundation" version = "0.10.0" @@ -473,49 +264,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "coreaudio-rs" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" -dependencies = [ - "bitflags 1.3.2", - "core-foundation-sys", - "coreaudio-sys", -] - -[[package]] -name = "coreaudio-sys" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce857aa0b77d77287acc1ac3e37a05a8c95a2af3647d23b15f263bdaeb7562b" -dependencies = [ - "bindgen", -] - -[[package]] -name = "cpal" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" -dependencies = [ - "alsa", - "core-foundation-sys", - "coreaudio-rs", - "dasp_sample", - "jni", - "js-sys", - "libc", - "mach2", - "ndk", - "ndk-context", - "oboe", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows", -] - [[package]] name = "cpufeatures" version = "0.2.16" @@ -525,21 +273,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - [[package]] name = "crc32fast" version = "1.4.2" @@ -549,18 +282,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core", - "subtle", - "zeroize", -] - [[package]] name = "crypto-common" version = "0.1.6" @@ -568,45 +289,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core", "typenum", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "fiat-crypto", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "cxx" version = "1.0.134" @@ -666,29 +351,12 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "dasp_sample" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" - [[package]] name = "data-encoding" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "der-parser" version = "9.0.0" @@ -719,9 +387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", - "const-oid", "crypto-common", - "subtle", ] [[package]] @@ -735,47 +401,12 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - [[package]] name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest", - "ff", - "generic-array", - "group", - "hkdf", - "pem-rfc7468", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - [[package]] name = "equivalent" version = "1.0.1" @@ -788,22 +419,6 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - [[package]] name = "foldhash" version = "0.1.3" @@ -819,71 +434,12 @@ 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - [[package]] name = "futures-core" 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[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 2.0.90", -] - -[[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" @@ -896,16 +452,10 @@ 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]] @@ -916,7 +466,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -932,16 +481,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug", - "polyval", -] - [[package]] name = "gimli" version = "0.31.1" @@ -954,23 +493,6 @@ version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc46dd3ec48fdd8e693a98d2b8bafae273a2d54c1de02a2a7e3d57d501f39677" -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - [[package]] name = "hash32" version = "0.3.1" @@ -996,30 +518,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "httlib-huffman" version = "0.3.4" @@ -1175,86 +673,12 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "interceptor" -version = "0.13.0" -dependencies = [ - "async-trait", - "bytes", - "log", - "portable-atomic", - "rand", - "rtcp", - "rtp", - "thiserror 1.0.69", - "tokio", - "waitgroup", - "webrtc-srtp", - "webrtc-util", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" -[[package]] -name = "jni" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" -dependencies = [ - "cesu8", - "cfg-if", - "combine", - "jni-sys", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "jobserver" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] - [[package]] name = "join_str" version = "0.1.0" @@ -1283,16 +707,6 @@ version = "0.2.168" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" -[[package]] -name = "libloading" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" -dependencies = [ - "cfg-if", - "windows-targets 0.52.6", -] - [[package]] name = "link-cplusplus" version = "1.0.9" @@ -1308,31 +722,12 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - [[package]] name = "log" version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" -[[package]] -name = "mach2" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" -dependencies = [ - "libc", -] - [[package]] name = "matchers" version = "0.1.0" @@ -1342,31 +737,12 @@ dependencies = [ "regex-automata 0.1.10", ] -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - [[package]] name = "memchr" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1393,35 +769,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ndk" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" -dependencies = [ - "bitflags 2.6.0", - "jni-sys", - "log", - "ndk-sys", - "num_enum", - "thiserror 1.0.69", -] - -[[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-sys" -version = "0.5.0+25.2.9519653" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" -dependencies = [ - "jni-sys", -] - [[package]] name = "newtype-enum" version = "0.1.0" @@ -1441,19 +788,6 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "nix" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset", - "pin-utils", -] - [[package]] name = "nom" version = "7.1.3" @@ -1490,17 +824,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "num-integer" version = "0.1.46" @@ -1519,27 +842,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "object" version = "0.36.5" @@ -1549,29 +851,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "oboe" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" -dependencies = [ - "jni", - "ndk", - "ndk-context", - "num-derive", - "num-traits", - "oboe-sys", -] - -[[package]] -name = "oboe-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" -dependencies = [ - "cc", -] - [[package]] name = "octets" version = "0.3.0" @@ -1593,12 +872,6 @@ version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" -[[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.5" @@ -1617,53 +890,6 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "p384" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - [[package]] name = "pem" version = "3.0.4" @@ -1674,15 +900,6 @@ dependencies = [ "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" @@ -1701,40 +918,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" - [[package]] name = "powerfmt" version = "0.2.0" @@ -1750,15 +933,6 @@ dependencies = [ "zerocopy 0.7.35", ] -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -1778,20 +952,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "proximity-client" -version = "0.1.0" -dependencies = [ - "anyhow", - "cpal", - "tokio", - "tracing", - "tracing-subscriber", - "webrtc", - "webtransport", - "xtra", -] - [[package]] name = "quinn" version = "0.11.6" @@ -1802,7 +962,7 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.0", + "rustc-hash", "rustls", "socket2", "thiserror 2.0.7", @@ -1820,7 +980,7 @@ dependencies = [ "getrandom", "rand", "ring", - "rustc-hash 2.1.0", + "rustc-hash", "rustls", "rustls-pki-types", "slab", @@ -1893,19 +1053,9 @@ dependencies = [ "ring", "rustls-pki-types", "time", - "x509-parser", "yasna", ] -[[package]] -name = "redox_syscall" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" -dependencies = [ - "bitflags 2.6.0", -] - [[package]] name = "regex" version = "1.11.1" @@ -1950,16 +1100,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - [[package]] name = "ring" version = "0.17.8" @@ -1989,7 +1129,7 @@ dependencies = [ "join_str", "num-integer", "num-traits", - "rustc-hash 2.1.0", + "rustc-hash", "rustc_version", "serde", "serde_json", @@ -1997,40 +1137,12 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "rtcp" -version = "0.12.0" -dependencies = [ - "bytes", - "thiserror 1.0.69", - "webrtc-util", -] - -[[package]] -name = "rtp" -version = "0.12.0" -dependencies = [ - "bytes", - "memchr", - "portable-atomic", - "rand", - "serde", - "thiserror 1.0.69", - "webrtc-util", -] - [[package]] name = "rustc-demangle" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - [[package]] name = "rustc-hash" version = "2.1.0" @@ -2122,15 +1234,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "schannel" version = "0.1.27" @@ -2140,49 +1243,19 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - [[package]] name = "scratch" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" -[[package]] -name = "sdp" -version = "0.7.0" -dependencies = [ - "rand", - "substring", - "thiserror 1.0.69", - "url", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - [[package]] name = "security-framework" version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -2237,17 +1310,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "sha2" version = "0.10.8" @@ -2274,25 +1336,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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core", -] - [[package]] name = "slab" version = "0.4.9" @@ -2338,15 +1381,6 @@ dependencies = [ "zerocopy 0.8.13", ] -[[package]] -name = "smol_str" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" -dependencies = [ - "serde", -] - [[package]] name = "socket2" version = "0.5.8" @@ -2363,16 +1397,6 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -2391,32 +1415,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "stun" -version = "0.7.0" -dependencies = [ - "base64", - "crc", - "lazy_static", - "md-5", - "rand", - "ring", - "subtle", - "thiserror 1.0.69", - "tokio", - "url", - "webrtc-util", -] - -[[package]] -name = "substring" -version = "1.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86" -dependencies = [ - "autocfg", -] - [[package]] name = "subtle" version = "2.6.1" @@ -2581,9 +1579,7 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", "pin-project-lite", - "signal-hook-registry", "socket2", "tokio-macros", "windows-sys 0.52.0", @@ -2600,19 +1596,6 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - [[package]] name = "toml_datetime" version = "0.6.8" @@ -2691,25 +1674,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "turn" -version = "0.9.0" -dependencies = [ - "async-trait", - "base64", - "futures", - "log", - "md-5", - "portable-atomic", - "rand", - "ring", - "stun", - "thiserror 1.0.69", - "tokio", - "tokio-util", - "webrtc-util", -] - [[package]] name = "typenum" version = "1.17.0" @@ -2728,16 +1692,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" -[[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" @@ -2788,25 +1742,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "waitgroup" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1f50000a783467e6c0200f9d10642f4bc424e39efc1b770203e88b488f79292" -dependencies = [ - "atomic-waker", -] - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2838,19 +1773,6 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "wasm-bindgen-macro" version = "0.2.99" @@ -2880,16 +1802,6 @@ version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "web-time" version = "1.1.0" @@ -2900,203 +1812,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webrtc" -version = "0.12.0" -dependencies = [ - "arc-swap", - "async-trait", - "bytes", - "cfg-if", - "hex", - "interceptor", - "lazy_static", - "log", - "portable-atomic", - "rand", - "rcgen", - "regex", - "ring", - "rtcp", - "rtp", - "rustls", - "sdp", - "serde", - "serde_json", - "sha2", - "smol_str", - "stun", - "thiserror 1.0.69", - "time", - "tokio", - "turn", - "url", - "waitgroup", - "webrtc-data", - "webrtc-dtls", - "webrtc-ice", - "webrtc-mdns", - "webrtc-media", - "webrtc-sctp", - "webrtc-srtp", - "webrtc-util", -] - -[[package]] -name = "webrtc-data" -version = "0.10.0" -dependencies = [ - "bytes", - "log", - "portable-atomic", - "thiserror 1.0.69", - "tokio", - "webrtc-sctp", - "webrtc-util", -] - -[[package]] -name = "webrtc-dtls" -version = "0.11.0" -dependencies = [ - "aes", - "aes-gcm", - "async-trait", - "bincode", - "byteorder", - "cbc", - "ccm", - "der-parser", - "hkdf", - "hmac", - "log", - "p256", - "p384", - "portable-atomic", - "rand", - "rand_core", - "rcgen", - "ring", - "rustls", - "sec1", - "serde", - "sha1", - "sha2", - "subtle", - "thiserror 1.0.69", - "tokio", - "webrtc-util", - "x25519-dalek", - "x509-parser", -] - -[[package]] -name = "webrtc-ice" -version = "0.12.0" -dependencies = [ - "arc-swap", - "async-trait", - "crc", - "log", - "portable-atomic", - "rand", - "serde", - "serde_json", - "stun", - "thiserror 1.0.69", - "tokio", - "turn", - "url", - "uuid", - "waitgroup", - "webrtc-mdns", - "webrtc-util", -] - -[[package]] -name = "webrtc-mdns" -version = "0.8.0" -dependencies = [ - "log", - "socket2", - "thiserror 1.0.69", - "tokio", - "webrtc-util", -] - -[[package]] -name = "webrtc-media" -version = "0.9.0" -dependencies = [ - "byteorder", - "bytes", - "rand", - "rtp", - "thiserror 1.0.69", -] - -[[package]] -name = "webrtc-sctp" -version = "0.11.0" -dependencies = [ - "arc-swap", - "async-trait", - "bytes", - "crc", - "log", - "portable-atomic", - "rand", - "thiserror 1.0.69", - "tokio", - "webrtc-util", -] - -[[package]] -name = "webrtc-srtp" -version = "0.14.0" -dependencies = [ - "aead", - "aes", - "aes-gcm", - "byteorder", - "bytes", - "ctr", - "hmac", - "log", - "rtcp", - "rtp", - "sha1", - "subtle", - "thiserror 1.0.69", - "tokio", - "webrtc-util", -] - -[[package]] -name = "webrtc-util" -version = "0.10.0" -dependencies = [ - "async-trait", - "bitflags 1.3.2", - "bytes", - "ipnet", - "lazy_static", - "libc", - "log", - "nix", - "portable-atomic", - "rand", - "thiserror 1.0.69", - "tokio", - "winapi", -] - -[[package]] -name = "webtransport" -version = "0.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da98a8c2a0364133be507cc64462f916f42eac0e5f54ce46d437698e9c00f5a" - [[package]] name = "winapi" version = "0.3.9" @@ -3128,51 +1843,13 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.54.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" -dependencies = [ - "windows-core", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.54.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" -dependencies = [ - "windows-result", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -3181,22 +1858,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets", ] [[package]] @@ -3205,46 +1867,28 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -3257,48 +1901,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -3363,18 +1983,6 @@ dependencies = [ "url", ] -[[package]] -name = "x25519-dalek" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" -dependencies = [ - "curve25519-dalek", - "rand_core", - "serde", - "zeroize", -] - [[package]] name = "x509-parser" version = "0.16.0" @@ -3387,7 +1995,6 @@ dependencies = [ "lazy_static", "nom", "oid-registry", - "ring", "rusticata-macros", "thiserror 1.0.69", "time", @@ -3520,20 +2127,6 @@ 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 2.0.90", -] [[package]] name = "zerovec" diff --git a/Cargo.toml b/Cargo.toml index 1c49e11..fba54cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,6 +19,3 @@ zerocopy = { version = "0.8.13", features = ["derive"] } [dev-dependencies] roead = "1.0.0" - -[workspace] -members = ["proximity-client"] diff --git a/out.opus b/out.opus deleted file mode 100644 index d9a9df5df138bae199a169481a89589732a07655..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmeZIPY-5bVt|4dA6r~O%$KeUiy4Le3rdSUQWH}cnHcyRc7v7pgOtMoNI4^rcR0Jv zo>3B{JR~u_m1963f!e4E4 = LazyLock::new(|| RTCRtpCodecParameters { - capability: RTCRtpCodecCapability { - mime_type: MIME_TYPE_OPUS.to_owned(), - clock_rate: 48000, - channels: 2, - sdp_fmtp_line: "".to_owned(), - rtcp_feedback: vec![], - }, - payload_type: 111, - ..Default::default() -}); -#[tokio::main] -async fn main() -> anyhow::Result<()> { - tracing_subscriber::registry() - .with(tracing_subscriber::fmt::layer().with_filter(FilterFn::new(|m| { - m.module_path().map(|path| !path.contains("webrtc_ice") && !path.contains("webrtc_mdns")).unwrap_or_default() - // m.module_path().map(|path| path.contains("proximity_client")).unwrap_or_default() - // true - }))) - .init(); - let mut m = MediaEngine::default(); - - m.register_codec(CODEC.clone(), RTPCodecType::Audio)?; - let mut registry = Registry::new(); - registry = register_default_interceptors(registry, &mut m)?; - let api = Arc::new( - APIBuilder::new() - .with_media_engine(m) - // .with_setting_engine({ - // let mut engine = SettingEngine::default(); - // // engine.enable_sender_rtx(is_enabled); - // engine - // }) - .with_interceptor_registry(registry) - .build(), - ); - let config = RTCConfiguration { - ice_servers: vec![RTCIceServer { - urls: vec!["stun:stun.l.google.com:19302".to_owned()], - ..Default::default() - }], - ..Default::default() - }; - - let sender = Sender::spawn(api.clone(), config.clone()); - - Receiver::run(api, config, sender).instrument(info_span!("receiver")).await; - Ok(()) -} - -#[derive(Actor)] -struct Sender { - peer_connection: Arc, - receiver: OnceCell>, - audio_track: Arc, -} -#[derive(Actor)] -struct Receiver { - peer_connection: Arc, - sender: Address, -} - -impl Sender { - pub fn spawn(api: Arc, config: RTCConfiguration) -> Address { - let (address, mailbox) = Mailbox::unbounded(); - let span = info_span!("sender"); - tokio::spawn( - async move { - let address = mailbox.address(); - let peer_connection = Arc::new(api.new_peer_connection(config).await.expect("rraaahaa")); - // Set the handler for ICE connection state - // This will notify you when the peer has connected/disconnected - peer_connection.on_ice_connection_state_change({ - let address = address.clone(); - Box::new(move |connection_state: RTCIceConnectionState| { - info!("Connection State has changed {connection_state}"); - if connection_state == RTCIceConnectionState::Connected { - let address = address.clone(); - tokio::spawn(async move { - address.send(Connected).await.unwrap(); - }); - } - Box::pin(async {}) - }) - }); - - // Set the handler for Peer connection state - // This will notify you when the peer has connected/disconnected - peer_connection.on_peer_connection_state_change(Box::new(move |s: RTCPeerConnectionState| { - info!("Peer Connection State has changed: {s}"); - - if s == RTCPeerConnectionState::Failed { - // Wait until PeerConnection has had no network activity for 30 seconds or another failure. It may be reconnected using an ICE Restart. - // Use webrtc.PeerConnectionStateDisconnected if you are interested in detecting faster timeout. - // Note that the PeerConnection may come back from PeerConnectionStateDisconnected. - info!("Peer Connection has gone to failed exiting"); - } - - Box::pin(async {}) - })); - - peer_connection.on_ice_candidate({ - let address = address.clone(); - let span = Span::current(); - Box::new(move |candidate: Option| { - let sender = address.clone(); - let span = span.clone(); - Box::pin( - async move { - if let Some(candidate) = candidate { - let candidate = candidate.to_json().unwrap(); - warn!("candidate: {:?}", candidate); - sender.send((IceNotify, candidate)).await.unwrap(); - } else { - warn!("candidates drained"); - } - } - .instrument(span), - ) - }) - }); - - peer_connection.on_track(Box::new(|track, _, _| { - warn!("aaaaaa"); - - panic!() - })); - - let audio_track = Arc::new(TrackLocalStaticSample::new( - CODEC.capability.clone(), - "audio".to_owned(), - "webrtc-rs".to_owned(), - )); - let rtp_sender = peer_connection - .add_transceiver_from_track( - Arc::clone(&audio_track) as Arc, - Some(RTCRtpTransceiverInit { - direction: RTCRtpTransceiverDirection::Sendonly, - send_encodings: Vec::new(), - }), - ) - .await - .expect("oops"); - let rtp_sender = rtp_sender.sender().await; - - // Read incoming RTCP packets - // Before these packets are returned they are processed by interceptors. For things - // like NACK this needs to be called. - tokio::spawn(async move { - let mut rtcp_buf = vec![0u8; 1500]; - while let Ok((_, _)) = rtp_sender.read(&mut rtcp_buf).await {} - error!("rtcp..."); - }); - - xtra::run( - mailbox, - Sender { - peer_connection, - receiver: OnceCell::const_new(), - audio_track, - }, - ) - .await; - - info!("exited"); - } - .instrument(span), - ); - - address - } -} - -impl Receiver { - pub async fn run(api: Arc, config: RTCConfiguration, sender: Address) { - let (address, mailbox) = Mailbox::unbounded(); - let peer_connection = Arc::new(api.new_peer_connection(config).await.expect("rraaahaa")); - // Set the handler for ICE connection state - // This will notify you when the peer has connected/disconnected - peer_connection.on_ice_connection_state_change({ - let address = address.clone(); - Box::new(move |connection_state: RTCIceConnectionState| { - info!("Connection State has changed {connection_state}"); - let address = address.clone(); - Box::pin(async move { - if connection_state == RTCIceConnectionState::Connected { - let _ = address.send(Connected).await.unwrap(); - } - }) - }) - }); - - // Set the handler for Peer connection state - // This will notify you when the peer has connected/disconnected - peer_connection.on_peer_connection_state_change(Box::new(move |s: RTCPeerConnectionState| { - info!("Peer Connection State has changed: {s}"); - - if s == RTCPeerConnectionState::Failed { - // Wait until PeerConnection has had no network activity for 30 seconds or another failure. It may be reconnected using an ICE Restart. - // Use webrtc.PeerConnectionStateDisconnected if you are interested in detecting faster timeout. - // Note that the PeerConnection may come back from PeerConnectionStateDisconnected. - error!("Peer Connection has gone to failed exiting"); - } - - Box::pin(async {}) - })); - - peer_connection.on_track(Box::new(move |track, track_receiver, transceiver| { - info!("holy track"); - - Box::pin(async move { - let mut file = File::create("out.opus").unwrap(); - let mut samplero = OggWriter::new(&mut file, 48000, 2).unwrap(); - - while let Ok((packet, _)) = track.read_rtp().await { - samplero.write_rtp(&packet).unwrap(); - } - println!("done"); - std::process::exit(1); - }) - })); - peer_connection.on_ice_candidate({ - let sender = sender.clone(); - let span = Span::current(); - Box::new(move |candidate| { - let sender = sender.clone(); - let span = span.clone(); - Box::pin( - async move { - if let Some(candidate) = candidate { - let candidate = candidate.to_json().unwrap(); - // warn!("candidate: {:?}", candidate); - sender.send(candidate).await.unwrap(); - } else { - // warn!("candidates drained"); - } - } - .instrument(span), - ) - }) - }); - - let transceiver = peer_connection - .add_transceiver_from_kind( - RTPCodecType::Audio, - Some(RTCRtpTransceiverInit { - direction: RTCRtpTransceiverDirection::Recvonly, - send_encodings: vec![], - }), - ) - .await - .unwrap(); - let rtp_sender = transceiver.sender().await; - tokio::spawn(async move { - let mut rtcp_buf = vec![0u8; 1500]; - while let Ok((packet, _)) = rtp_sender.read(&mut rtcp_buf).await {} - error!("rtcp..."); - }); - - let offer = sender.send(address).await.unwrap(); - error!("offer {offer:?}"); - peer_connection.set_remote_description(offer).await.unwrap(); - let answer = peer_connection.create_answer(None).await.unwrap(); - peer_connection.set_local_description(answer.clone()).await.unwrap(); - - sender.send(answer).await.unwrap(); - - xtra::run( - mailbox, - Receiver { - peer_connection, - sender, - }, - ) - .await; - } -} - -impl Handler> for Sender { - type Return = RTCSessionDescription; - - async fn handle(&mut self, address: Address, ctx: &mut xtra::Context) -> Self::Return { - self.receiver.set(address.clone()).unwrap(); - self.peer_connection.on_ice_candidate(Box::new(move |candidate| { - let address = address.clone(); - Box::pin(async move { - if let Some(candidate) = candidate { - address.send(candidate.to_json().unwrap()).await.unwrap(); - } - }) - })); - let offer = self.peer_connection.create_offer(None).await.unwrap(); - self.peer_connection.set_local_description(offer.clone()).await.unwrap(); - - offer - } -} - -impl Handler for Sender { - type Return = (); - - async fn handle(&mut self, message: RTCSessionDescription, ctx: &mut xtra::Context) -> Self::Return { - self.peer_connection.set_remote_description(message).await.unwrap(); - } -} - -struct IceNotify; -impl Handler<(IceNotify, RTCIceCandidateInit)> for Sender { - type Return = (); - - async fn handle( - &mut self, - (_, message): (IceNotify, RTCIceCandidateInit), - _: &mut xtra::Context, - ) -> Self::Return { - self.receiver.get().unwrap().send(message).await.unwrap() - } -} -impl Handler for Sender { - type Return = (); - - async fn handle(&mut self, message: RTCIceCandidateInit, _: &mut xtra::Context) -> Self::Return { - // trace!("adding ice candidate {message:?}"); - self.peer_connection.add_ice_candidate(message).await.unwrap(); - } -} - -impl Handler for Receiver { - type Return = (); - - async fn handle(&mut self, message: RTCIceCandidateInit, _: &mut xtra::Context) -> Self::Return { - // trace!("adding ice candidate {message:?}"); - self.peer_connection.add_ice_candidate(message).await.unwrap(); - } -} - -pub struct Connected; -impl Handler for Sender { - type Return = (); - - async fn handle(&mut self, _: Connected, ctx: &mut xtra::Context) -> Self::Return { - info!("connected"); - let address = ctx.mailbox().address(); - - tokio::time::sleep(Duration::from_secs(1)).await; - - let file = read(args().nth(1).unwrap()).unwrap(); - let (mut ogg, _) = OggReader::new(Cursor::new(file), true).unwrap(); - const OGG_PAGE_DURATION: Duration = Duration::from_millis(20); - let mut ticker = tokio::time::interval(OGG_PAGE_DURATION); - let audio_track = self.audio_track.clone(); - - tokio::spawn( - async move { - // Keep track of last granule, the difference is the amount of samples in the buffer - let mut last_granule: u64 = 0; - while let Ok((page_data, page_header)) = ogg.parse_next_page() { - // The amount of samples is the difference between the last and current timestamp - let sample_count = page_header.granule_position - last_granule; - last_granule = page_header.granule_position; - let sample_duration = Duration::from_millis(sample_count * 1000 / 48000); - - info!("writing sample"); - audio_track - .write_sample(&Sample { - data: page_data.freeze(), - duration: sample_duration, - ..Default::default() - }) - .await - .unwrap(); - - let _ = ticker.tick().await; - } - info!("done streaming audio"); - address.send(Stop).await.unwrap(); - } - .in_current_span(), - ); - } -} - -struct Stop; -impl Handler for Sender { - type Return = (); - async fn handle(&mut self, _: Stop, ctx: &mut xtra::Context) -> Self::Return { - self.peer_connection.close().await.unwrap(); - ctx.stop_self(); - } -} - -impl Handler for Receiver { - type Return = (); - - async fn handle(&mut self, _: Connected, _: &mut xtra::Context) -> Self::Return { - info!("connected!"); - } -} diff --git a/src/protocol.rs b/src/protocol.rs index 849427a..228e516 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -5,7 +5,6 @@ use std::{ }; use anyhow::{bail, Context}; -use tracing::warn; use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout, Unaligned}; #[derive(Clone, Copy, Debug, PartialEq, Eq, FromBytes, IntoBytes, KnownLayout, Immutable, Unaligned)] @@ -61,7 +60,7 @@ impl TryFrom<&str> for String { fn try_from(value: &str) -> Result { let mut buf = [0; N]; if value.len() > N { - bail!("seggs") + bail!("string large than {N}") } value.write_to_prefix(&mut buf).unwrap(); diff --git a/src/server/prox.rs b/src/server/prox.rs index 49d6ed5..464bc8f 100644 --- a/src/server/prox.rs +++ b/src/server/prox.rs @@ -1,20 +1,15 @@ -use core::str; use std::sync::Arc; use packet::{ Event, Event_variants::{Answer, Candidate, Offer}, - Packet, HYP_UUID_SIZE, }; -use tokio::io::{AsyncReadExt, AsyncWriteExt}; +use tokio::io::AsyncWriteExt; use tracing::{error, info, info_span, trace, warn, Instrument}; -use uuid::Uuid; -use wtransport::{endpoint::IncomingSession, RecvStream}; +use wtransport::endpoint::IncomingSession; use xtra::{Actor, Address, Handler, Mailbox}; use zerocopy::{FromZeros, IntoBytes}; -use crate::protocol::String; - use super::{ listeners, ChangedStage, Manager, PlayerConnected, PlayerDisconnected, PlayerMoved, RequestState, UuidString, }; @@ -225,7 +220,7 @@ impl Handler for ProximityPlayer { let event = packet::Packet { kind: packet::Kind::PeerConnectionChanged, data: packet::PeerConnectionChanged { - id: self.id, + id: message.id, connected: message.connected, }, }; @@ -312,13 +307,13 @@ impl Handler for ProximityPlayer { } pub mod packet { - use std::{str, string::String as StdString}; + use std::string::String as StdString; use anyhow::bail; use newtype_enum::newtype_enum; use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tracing::info; -use wtransport::{RecvStream, SendStream}; + use wtransport::{RecvStream, SendStream}; use zerocopy::{FromZeros, Immutable, IntoBytes}; use Event_variants::{Answer, Candidate, Offer}; diff --git a/wyrmjewelbox.opus b/wyrmjewelbox.opus deleted file mode 100644 index d0a4fe1d3e450c2da66b701e390e0487a90ff067..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3993796 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μ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