I don't get why it no worky

This commit is contained in:
Oscar Beaumont 2024-02-13 14:18:08 +08:00
parent 3560ed4099
commit 44d31cbb1d
15 changed files with 256 additions and 155 deletions

288
Cargo.lock generated
View file

@ -76,11 +76,23 @@ version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
dependencies = [
"getrandom 0.2.11",
"getrandom 0.2.12",
"once_cell",
"version_check",
]
[[package]]
name = "ahash"
version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
dependencies = [
"cfg-if",
"once_cell",
"version_check",
"zerocopy",
]
[[package]]
name = "aho-corasick"
version = "0.7.20"
@ -114,6 +126,12 @@ dependencies = [
"alloc-no-stdlib",
]
[[package]]
name = "allocator-api2"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
[[package]]
name = "android-tzdata"
version = "0.1.1"
@ -369,9 +387,9 @@ dependencies = [
[[package]]
name = "async-trait"
version = "0.1.75"
version = "0.1.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98"
checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
dependencies = [
"proc-macro2",
"quote",
@ -945,9 +963,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "base64"
version = "0.21.5"
version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
name = "base64-simd"
@ -1197,7 +1215,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
dependencies = [
"memchr",
"regex-automata 0.4.3",
"regex-automata 0.4.5",
"serde",
]
@ -1380,7 +1398,7 @@ version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7"
dependencies = [
"smallvec 1.11.2",
"smallvec 1.13.1",
]
[[package]]
@ -1389,7 +1407,7 @@ version = "0.15.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
dependencies = [
"smallvec 1.11.2",
"smallvec 1.13.1",
"target-lexicon",
]
@ -1844,7 +1862,7 @@ dependencies = [
"phf 0.8.0",
"proc-macro2",
"quote",
"smallvec 1.11.2",
"smallvec 1.13.1",
"syn 1.0.109",
]
@ -2484,7 +2502,7 @@ dependencies = [
"lebe",
"miniz_oxide",
"rayon-core",
"smallvec 1.11.2",
"smallvec 1.13.1",
"zune-inflate",
]
@ -2737,9 +2755,9 @@ dependencies = [
[[package]]
name = "futures"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
dependencies = [
"futures-channel",
"futures-core",
@ -2753,8 +2771,6 @@ dependencies = [
[[package]]
name = "futures-bounded"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1e2774cc104e198ef3d3e1ff4ab40f86fa3245d6cb6a3a46174f21463cee173"
dependencies = [
"futures-timer",
"futures-util",
@ -2762,9 +2778,9 @@ dependencies = [
[[package]]
name = "futures-channel"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
dependencies = [
"futures-core",
"futures-sink",
@ -2780,7 +2796,7 @@ dependencies = [
"futures-core",
"pin-project",
"slab",
"smallvec 1.11.2",
"smallvec 1.13.1",
]
[[package]]
@ -2791,9 +2807,9 @@ checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-executor"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
dependencies = [
"futures-core",
"futures-task",
@ -2803,9 +2819,9 @@ dependencies = [
[[package]]
name = "futures-io"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
[[package]]
name = "futures-lite"
@ -2845,9 +2861,9 @@ dependencies = [
[[package]]
name = "futures-macro"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
@ -2866,15 +2882,15 @@ dependencies = [
[[package]]
name = "futures-sink"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
[[package]]
name = "futures-task"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
[[package]]
name = "futures-ticker"
@ -2895,9 +2911,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
[[package]]
name = "futures-util"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
"futures-channel",
"futures-core",
@ -3028,9 +3044,9 @@ dependencies = [
[[package]]
name = "getrandom"
version = "0.2.11"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
dependencies = [
"cfg-if",
"js-sys",
@ -3111,7 +3127,7 @@ dependencies = [
"gobject-sys",
"libc",
"once_cell",
"smallvec 1.11.2",
"smallvec 1.13.1",
"thiserror",
]
@ -3155,7 +3171,7 @@ dependencies = [
"aho-corasick 1.1.2",
"bstr",
"log",
"regex-automata 0.4.3",
"regex-automata 0.4.5",
"regex-syntax 0.8.2",
"serde",
]
@ -3289,7 +3305,7 @@ version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
dependencies = [
"ahash",
"ahash 0.7.7",
]
[[package]]
@ -3298,7 +3314,7 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
dependencies = [
"ahash",
"ahash 0.7.7",
]
[[package]]
@ -3306,6 +3322,10 @@ name = "hashbrown"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
dependencies = [
"ahash 0.8.8",
"allocator-api2",
]
[[package]]
name = "hashlink"
@ -3322,7 +3342,7 @@ version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"bytes",
"headers-core",
"http",
@ -3413,7 +3433,7 @@ dependencies = [
"parking_lot 0.12.1",
"rand 0.8.5",
"resolv-conf",
"smallvec 1.11.2",
"smallvec 1.13.1",
"thiserror",
"tokio",
"tracing",
@ -3538,7 +3558,7 @@ source = "git+https://github.com/spacedriveapp/rspc.git?rev=f3347e2e8bfe3f37bfac
dependencies = [
"async-tungstenite",
"axum",
"base64 0.21.5",
"base64 0.21.7",
"cookie",
"form_urlencoded",
"futures",
@ -3697,9 +3717,9 @@ dependencies = [
[[package]]
name = "igd-next"
version = "0.14.2"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57e065e90a518ab5fedf79aa1e4b784e10f8e484a834f6bda85c42633a2cb7af"
checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4"
dependencies = [
"async-trait",
"attohttpc",
@ -3724,7 +3744,7 @@ dependencies = [
"globset",
"log",
"memchr",
"regex-automata 0.4.3",
"regex-automata 0.4.5",
"same-file",
"walkdir",
"winapi-util",
@ -4142,9 +4162,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
[[package]]
name = "libc"
version = "0.2.151"
version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "libdbus-sys"
@ -4209,14 +4229,12 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
[[package]]
name = "libp2p"
version = "0.53.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "681fb3f183edfbedd7a57d32ebe5dcdc0b9f94061185acf3c30249349cc6fc99"
dependencies = [
"bytes",
"either",
"futures",
"futures-timer",
"getrandom 0.2.11",
"getrandom 0.2.12",
"instant",
"libp2p-allow-block-list",
"libp2p-connection-limits",
@ -4239,8 +4257,6 @@ dependencies = [
[[package]]
name = "libp2p-allow-block-list"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "107b238b794cb83ab53b74ad5dcf7cca3200899b72fe662840cfb52f5b0a32e6"
dependencies = [
"libp2p-core",
"libp2p-identity",
@ -4251,8 +4267,6 @@ dependencies = [
[[package]]
name = "libp2p-connection-limits"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7cd50a78ccfada14de94cbacd3ce4b0138157f376870f13d3a8422cd075b4fd"
dependencies = [
"libp2p-core",
"libp2p-identity",
@ -4263,8 +4277,6 @@ dependencies = [
[[package]]
name = "libp2p-core"
version = "0.41.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8130a8269e65a2554d55131c770bdf4bcd94d2b8d4efb24ca23699be65066c05"
dependencies = [
"either",
"fnv",
@ -4282,7 +4294,7 @@ dependencies = [
"rand 0.8.5",
"rw-stream-sink",
"serde",
"smallvec 1.11.2",
"smallvec 1.13.1",
"thiserror",
"tracing",
"unsigned-varint 0.8.0",
@ -4292,8 +4304,6 @@ dependencies = [
[[package]]
name = "libp2p-dns"
version = "0.41.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d17cbcf7160ff35c3e8e560de4a068fe9d6cb777ea72840e48eb76ff9576c4b6"
dependencies = [
"async-trait",
"futures",
@ -4301,25 +4311,23 @@ dependencies = [
"libp2p-core",
"libp2p-identity",
"parking_lot 0.12.1",
"smallvec 1.11.2",
"smallvec 1.13.1",
"tracing",
]
[[package]]
name = "libp2p-gossipsub"
version = "0.46.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d665144a616dadebdc5fff186b1233488cdcd8bfb1223218ff084b6d052c94f7"
dependencies = [
"asynchronous-codec",
"base64 0.21.5",
"base64 0.21.7",
"byteorder",
"bytes",
"either",
"fnv",
"futures",
"futures-ticker",
"getrandom 0.2.11",
"getrandom 0.2.12",
"hex_fmt",
"instant",
"libp2p-core",
@ -4332,7 +4340,7 @@ dependencies = [
"regex",
"serde",
"sha2 0.10.8",
"smallvec 1.11.2",
"smallvec 1.13.1",
"tracing",
"void",
]
@ -4359,8 +4367,6 @@ dependencies = [
[[package]]
name = "libp2p-kad"
version = "0.45.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cc5767727d062c4eac74dd812c998f0e488008e82cce9c33b463d38423f9ad2"
dependencies = [
"arrayvec",
"asynchronous-codec",
@ -4379,7 +4385,7 @@ dependencies = [
"rand 0.8.5",
"serde",
"sha2 0.10.8",
"smallvec 1.11.2",
"smallvec 1.13.1",
"thiserror",
"tracing",
"uint",
@ -4389,8 +4395,6 @@ dependencies = [
[[package]]
name = "libp2p-mdns"
version = "0.45.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49007d9a339b3e1d7eeebc4d67c05dbf23d300b7d091193ec2d3f26802d7faf2"
dependencies = [
"data-encoding",
"futures",
@ -4400,7 +4404,7 @@ dependencies = [
"libp2p-identity",
"libp2p-swarm",
"rand 0.8.5",
"smallvec 1.11.2",
"smallvec 1.13.1",
"socket2 0.5.5",
"tokio",
"tracing",
@ -4410,8 +4414,6 @@ dependencies = [
[[package]]
name = "libp2p-quic"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0375cdfee57b47b313ef1f0fdb625b78aed770d33a40cf1c294a371ff5e6666"
dependencies = [
"bytes",
"futures",
@ -4433,9 +4435,7 @@ dependencies = [
[[package]]
name = "libp2p-swarm"
version = "0.44.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e92532fc3c4fb292ae30c371815c9b10103718777726ea5497abc268a4761866"
version = "0.44.2"
dependencies = [
"either",
"fnv",
@ -4444,10 +4444,11 @@ dependencies = [
"instant",
"libp2p-core",
"libp2p-identity",
"lru 0.12.2",
"multistream-select",
"once_cell",
"rand 0.8.5",
"smallvec 1.11.2",
"smallvec 1.13.1",
"tokio",
"tracing",
"void",
@ -4456,8 +4457,6 @@ dependencies = [
[[package]]
name = "libp2p-tcp"
version = "0.41.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b2460fc2748919adff99ecbc1aab296e4579e41f374fb164149bd2c9e529d4c"
dependencies = [
"futures",
"futures-timer",
@ -4473,8 +4472,6 @@ dependencies = [
[[package]]
name = "libp2p-tls"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93ce7e3c2e7569d685d08ec795157981722ff96e9e9f9eae75df3c29d02b07a5"
dependencies = [
"futures",
"futures-rustls",
@ -4491,9 +4488,7 @@ dependencies = [
[[package]]
name = "libp2p-upnp"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "963eb8a174f828f6a51927999a9ab5e45dfa9aa2aa5fed99aa65f79de6229464"
version = "0.2.1"
dependencies = [
"futures",
"futures-timer",
@ -4604,6 +4599,15 @@ dependencies = [
"hashbrown 0.12.3",
]
[[package]]
name = "lru"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22"
dependencies = [
"hashbrown 0.14.3",
]
[[package]]
name = "lru-cache"
version = "0.1.2"
@ -4791,7 +4795,7 @@ version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e52eb6380b6d2a10eb3434aec0885374490f5b82c8aaf5cd487a183c98be834"
dependencies = [
"ahash",
"ahash 0.7.7",
"metrics-macros",
]
@ -4801,7 +4805,7 @@ version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "142c53885123b68d94108295a09d4afe1a1388ed95b54d5dacd9a454753030f2"
dependencies = [
"ahash",
"ahash 0.7.7",
"metrics-macros",
]
@ -4898,7 +4902,7 @@ dependencies = [
"crossbeam-utils",
"dashmap",
"skeptic",
"smallvec 1.11.2",
"smallvec 1.13.1",
"tagptr",
"triomphe",
]
@ -5000,15 +5004,13 @@ dependencies = [
[[package]]
name = "multistream-select"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19"
dependencies = [
"bytes",
"futures",
"log",
"pin-project",
"smallvec 1.11.2",
"unsigned-varint 0.7.2",
"smallvec 1.13.1",
"tracing",
"unsigned-varint 0.8.0",
]
[[package]]
@ -5032,7 +5034,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
dependencies = [
"getrandom 0.2.11",
"getrandom 0.2.12",
]
[[package]]
@ -5182,7 +5184,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
dependencies = [
"smallvec 1.11.2",
"smallvec 1.13.1",
]
[[package]]
@ -5758,7 +5760,7 @@ dependencies = [
"instant",
"libc",
"redox_syscall 0.2.16",
"smallvec 1.11.2",
"smallvec 1.13.1",
"winapi",
]
@ -5771,7 +5773,7 @@ dependencies = [
"cfg-if",
"libc",
"redox_syscall 0.4.1",
"smallvec 1.11.2",
"smallvec 1.13.1",
"windows-targets 0.48.5",
]
@ -5849,7 +5851,7 @@ version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"serde",
]
@ -6056,18 +6058,18 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
[[package]]
name = "pin-project"
version = "1.1.3"
version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.1.3"
version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
dependencies = [
"proc-macro2",
"quote",
@ -6130,7 +6132,7 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"indexmap 2.2.1",
"line-wrap",
"quick-xml",
@ -6436,9 +6438,9 @@ dependencies = [
[[package]]
name = "prometheus-client"
version = "0.22.0"
version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "510c4f1c9d81d556458f94c98f857748130ea9737bbd6053da497503b26ea63c"
checksum = "6f87c10af16e0af74010d2a123d202e8363c04db5acfa91d8747f64a8524da3a"
dependencies = [
"dtoa",
"itoa 1.0.10",
@ -6587,7 +6589,7 @@ dependencies = [
"futures",
"indexmap 1.9.3",
"itertools 0.10.5",
"lru",
"lru 0.7.8",
"once_cell",
"opentelemetry",
"petgraph",
@ -6643,8 +6645,6 @@ dependencies = [
[[package]]
name = "quick-protobuf-codec"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474"
dependencies = [
"asynchronous-codec",
"bytes",
@ -6823,7 +6823,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
"getrandom 0.2.11",
"getrandom 0.2.12",
]
[[package]]
@ -6936,20 +6936,20 @@ version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
dependencies = [
"getrandom 0.2.11",
"getrandom 0.2.12",
"libredox",
"thiserror",
]
[[package]]
name = "regex"
version = "1.10.2"
version = "1.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
dependencies = [
"aho-corasick 1.1.2",
"memchr",
"regex-automata 0.4.3",
"regex-automata 0.4.5",
"regex-syntax 0.8.2",
]
@ -6964,9 +6964,9 @@ dependencies = [
[[package]]
name = "regex-automata"
version = "0.4.3"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
dependencies = [
"aho-corasick 1.1.2",
"memchr",
@ -7024,7 +7024,7 @@ version = "0.11.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"bytes",
"encoding_rs",
"futures-core",
@ -7151,7 +7151,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
dependencies = [
"cc",
"getrandom 0.2.11",
"getrandom 0.2.12",
"libc",
"spin 0.9.8",
"untrusted 0.9.0",
@ -7247,7 +7247,7 @@ dependencies = [
"hashlink",
"libsqlite3-sys",
"memchr",
"smallvec 1.11.2",
"smallvec 1.13.1",
]
[[package]]
@ -7337,7 +7337,7 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
]
[[package]]
@ -7364,7 +7364,7 @@ checksum = "71cd15fef9112a1f94ac64b58d1e4628192631ad6af4dc69997f995459c874e7"
dependencies = [
"bitflags 1.3.2",
"bytemuck",
"smallvec 1.11.2",
"smallvec 1.13.1",
"ttf-parser",
"unicode-bidi-mirroring",
"unicode-ccc",
@ -7375,8 +7375,6 @@ dependencies = [
[[package]]
name = "rw-stream-sink"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1"
dependencies = [
"futures",
"pin-project",
@ -7557,7 +7555,7 @@ dependencies = [
name = "sd-cloud-api"
version = "0.1.0"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"reqwest",
"rspc",
"sd-p2p2",
@ -7581,7 +7579,7 @@ dependencies = [
"aws-credential-types",
"aws-sdk-s3",
"axum",
"base64 0.21.5",
"base64 0.21.7",
"base91",
"blake3",
"bytes",
@ -7914,7 +7912,7 @@ dependencies = [
name = "sd-p2p2"
version = "0.2.0"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"base91",
"ed25519-dalek",
"flume 0.11.0",
@ -8073,7 +8071,7 @@ dependencies = [
"phf_codegen 0.8.0",
"precomputed-hash",
"servo_arc",
"smallvec 1.11.2",
"smallvec 1.13.1",
"thin-slice",
]
@ -8194,7 +8192,7 @@ version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"chrono",
"hex",
"indexmap 1.9.3",
@ -8437,9 +8435,9 @@ dependencies = [
[[package]]
name = "smallvec"
version = "1.11.2"
version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
[[package]]
name = "socket2"
@ -8793,7 +8791,7 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"serde",
"serde_json",
]
@ -9003,7 +9001,7 @@ version = "1.5.3"
source = "git+https://github.com/spacedriveapp/tauri.git?rev=8409af71a83d631ff9d1cd876c441a57511a1cbd#8409af71a83d631ff9d1cd876c441a57511a1cbd"
dependencies = [
"anyhow",
"base64 0.21.5",
"base64 0.21.7",
"bytes",
"cocoa",
"dirs-next",
@ -9079,7 +9077,7 @@ name = "tauri-codegen"
version = "1.4.1"
source = "git+https://github.com/spacedriveapp/tauri.git?rev=8409af71a83d631ff9d1cd876c441a57511a1cbd#8409af71a83d631ff9d1cd876c441a57511a1cbd"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"brotli",
"ico",
"json-patch",
@ -9303,18 +9301,18 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
[[package]]
name = "thiserror"
version = "1.0.51"
version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.51"
version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
dependencies = [
"proc-macro2",
"quote",
@ -9697,7 +9695,7 @@ dependencies = [
"once_cell",
"regex",
"sharded-slab",
"smallvec 1.11.2",
"smallvec 1.13.1",
"thread_local",
"tracing",
"tracing-core",
@ -9950,7 +9948,7 @@ version = "2.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"log",
"once_cell",
"rustls",
@ -10008,7 +10006,7 @@ version = "0.36.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c51daa774fe9ee5efcf7b4fec13019b8119cda764d9a8b5b06df02bb1445c656"
dependencies = [
"base64 0.21.5",
"base64 0.21.7",
"log",
"pico-args",
"usvg-parser",
@ -10090,7 +10088,7 @@ version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
dependencies = [
"getrandom 0.2.11",
"getrandom 0.2.12",
"serde",
]
@ -11025,6 +11023,26 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "zerocopy"
version = "0.7.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.7.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
]
[[package]]
name = "zeroize"
version = "1.7.0"

View file

@ -57,7 +57,7 @@ base64 = "0.21.5"
blake3 = "1.5.0"
chrono = "0.4.31"
clap = "4.4.7"
futures = "0.3.29"
futures = "0.3.30"
futures-concurrency = "7.4.3"
hex = "0.4.3"
http = "0.2.9"
@ -94,6 +94,15 @@ rspc = { git = "https://github.com/spacedriveapp/rspc.git", rev = "f3347e2e8bfe3
tauri = { git = "https://github.com/spacedriveapp/tauri.git", rev = "8409af71a83d631ff9d1cd876c441a57511a1cbd" }
tao = { git = "https://github.com/spacedriveapp/tao", rev = "7880adbc090402c44fbcf006669458fa82623403" }
# libp2p = { git = "https://github.com/spacedriveapp/rust-libp2p", rev = "0888a95ad875764c21839d8e36c4c1bf4b7299a5" }
# libp2p-quic = { git = "https://github.com/spacedriveapp/rust-libp2p", rev = "0888a95ad875764c21839d8e36c4c1bf4b7299a5" }
# libp2p-swarm = { git = "https://github.com/spacedriveapp/rust-libp2p", rev = "0888a95ad875764c21839d8e36c4c1bf4b7299a5" }
libp2p = { path = "/Users/oscar/Desktop/rust-libp2p/libp2p" }
libp2p-quic = { path = "/Users/oscar/Desktop/rust-libp2p/transports/quic" }
libp2p-swarm = { path = "/Users/oscar/Desktop/rust-libp2p/swarm" }
# Set the settings for build scripts and proc-macros.
[profile.dev.build-override]
opt-level = 3

View file

@ -20,7 +20,7 @@ pub(crate) fn mount() -> AlphaRouter<Ctx> {
for (identity, peer, metadata) in
node.p2p.p2p.peers().iter().filter_map(|(i, p)| {
PeerMetadata::from_hashmap(&*p.metadata())
PeerMetadata::from_hashmap(&p.metadata())
.ok()
.map(|m| (i, p, m))
}) {
@ -45,6 +45,26 @@ pub(crate) fn mount() -> AlphaRouter<Ctx> {
.procedure("state", {
R.query(|node, _: ()| async move { Ok(node.p2p.state().await) })
})
.procedure("debugConnect", {
R.mutation(|node, identity: RemoteIdentity| async move {
let peer = { node.p2p.p2p.peers().get(&identity).cloned() };
let _stream = peer
.ok_or(rspc::Error::new(
ErrorCode::InternalServerError,
"big man, offline".into(),
))?
.new_stream()
.await
.map_err(|err| {
rspc::Error::new(
ErrorCode::InternalServerError,
format!("huh, lol: {:?}", err),
)
})?;
Ok("connected")
})
})
.procedure("spacedrop", {
#[derive(Type, Deserialize)]
pub struct SpacedropArgs {

View file

@ -184,7 +184,7 @@ impl Node {
std::env::set_var(
"RUST_LOG",
format!("info,sd_core={level},sd_core::location::manager=info,sd_ai={level}"),
format!("info,sd_core={level},quinn=trace,libp2p_quic=trace,libp2p=trace,sd_core::location::manager=info,sd_ai={level}"),
);
}

View file

@ -55,7 +55,10 @@ pub async fn spacedrop(
.await
.into_iter()
.collect::<Result<Vec<_>, std::io::Error>>()
.map_err(|_| ())? // TODO: Error handling
.map_err(|err| {
warn!("error opening file: '{err:?}'");
() // TODO: Proper error
})?
.into_iter()
.unzip();

View file

@ -87,6 +87,7 @@ fn advertise(state: &mut State) {
}
let meta = state.p2p.metadata().clone();
println!("{:?}", ports_to_service); // TODO
for (port, ips) in ports_to_service {
let service = ServiceInfo::new(
&state.service_domain,

View file

@ -8,6 +8,7 @@ use flume::Sender;
use hash_map_diff::hash_map_diff;
use stable_vec::StableVec;
use tokio::sync::oneshot;
use tracing::info;
use crate::{
hooks::{HandlerFn, Hook, HookEvent, ListenerData, ListenerId},
@ -260,6 +261,7 @@ impl P2P {
listener.addrs.insert(addr);
}
info!("HookEvent::ListenerAddrAdded({listener_id:?}, {addr})");
hooks.iter().for_each(|(_, hook)| {
hook.send(HookEvent::ListenerAddrAdded(listener_id, addr));
});
@ -274,6 +276,7 @@ impl P2P {
listener.addrs.remove(&addr);
}
info!("HookEvent::ListenerAddrRemoved({listener_id:?}, {addr})");
hooks.iter().for_each(|(_, hook)| {
hook.send(HookEvent::ListenerAddrRemoved(listener_id, addr));
});

View file

@ -158,6 +158,7 @@ impl Peer {
};
let (tx, rx) = oneshot::channel();
println!("ZZZ"); // TODO
connect_tx
.send(ConnectionRequest {
to: self.identity.clone(),
@ -168,13 +169,17 @@ impl Peer {
.map_err(|err| {
warn!("Failed to send connect request to peer: {}", err);
})?;
rx.await
println!("XXX"); // TODO
let y = rx
.await
.map_err(|err| {
warn!("Failed to receive connect response from peer: {err}");
})?
.map_err(|err| {
warn!("Failed to do the thing: {err}");
})
});
println!("XXX -- DONE {:?}", y); // TODO
y
}
}

View file

@ -90,6 +90,8 @@ impl NetworkBehaviour for SpaceTime {
_addresses: &[Multiaddr],
_effective_role: Endpoint,
) -> Result<Vec<Multiaddr>, ConnectionDenied> {
println!("handle_pending_outbound_connection {:?}", _maybe_peer); // TODO
// This should be unused but libp2p still calls it
Ok(vec![])
}

View file

@ -4,8 +4,16 @@ use std::net::{IpAddr, SocketAddr};
use libp2p::{multiaddr::Protocol, Multiaddr};
use crate::P2P;
#[derive(Clone)]
pub struct SpaceTimeProtocolName(pub &'static str);
pub struct SpaceTimeProtocolName(String);
impl SpaceTimeProtocolName {
pub fn new(p2p: &P2P) -> Self {
SpaceTimeProtocolName(format!("/{}/spacetime/1.0.0", p2p.app_name()))
}
}
impl AsRef<str> for SpaceTimeProtocolName {
fn as_ref(&self) -> &str {

View file

@ -30,7 +30,7 @@ impl UpgradeInfo for InboundProtocol {
type InfoIter = [Self::Info; 1];
fn protocol_info(&self) -> Self::InfoIter {
[SpaceTimeProtocolName(self.state.p2p.app_name())]
[SpaceTimeProtocolName::new(&self.state.p2p)]
}
}

View file

@ -1,5 +1,4 @@
use std::{
convert::Infallible,
future::Future,
pin::Pin,
sync::{atomic::Ordering, Arc, PoisonError},
@ -8,8 +7,6 @@ use std::{
use libp2p::{core::UpgradeInfo, swarm::ConnectionId, OutboundUpgrade, Stream};
use tracing::warn;
use crate::{Identity, P2P};
use super::{behaviour::SpaceTimeState, libp2p::SpaceTimeProtocolName, stream::new_outbound};
pub struct OutboundProtocol {
@ -22,7 +19,7 @@ impl UpgradeInfo for OutboundProtocol {
type InfoIter = [Self::Info; 1];
fn protocol_info(&self) -> Self::InfoIter {
[SpaceTimeProtocolName(self.state.p2p.app_name())]
[SpaceTimeProtocolName::new(&self.state.p2p)]
}
}
@ -34,6 +31,8 @@ impl OutboundUpgrade<Stream> for OutboundProtocol {
fn upgrade_outbound(self, io: Stream, _protocol: Self::Info) -> Self::Future {
let id = self.state.stream_id.fetch_add(1, Ordering::Relaxed);
Box::pin(async move {
println!("A"); // TODO
let Some(req) = self
.state
.establishing_outbound
@ -48,12 +47,16 @@ impl OutboundUpgrade<Stream> for OutboundProtocol {
return Ok(());
};
println!("B"); // TODO
let _ = req.tx.send(
new_outbound(id, self.state.p2p.identity(), io)
.await
.map_err(|_| "error creating outbound stream".to_string()),
);
println!("C"); // TODO
Ok(())
})
}

View file

@ -1,6 +1,7 @@
use std::{
convert::Infallible,
net::{Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6},
str::FromStr,
sync::{Arc, PoisonError, RwLock},
};
@ -9,7 +10,7 @@ use libp2p::{
core::muxing::StreamMuxerBox,
futures::StreamExt,
swarm::dial_opts::{DialOpts, PeerCondition},
Swarm, SwarmBuilder, Transport,
PeerId, Swarm, SwarmBuilder, Transport,
};
use stable_vec::StableVec;
use tokio::{
@ -74,8 +75,8 @@ impl QuicTransport {
// This is sketchy, but it makes the whole system a lot easier to work with
// We are assuming the libp2p `Keypair`` is the same format as our `Identity` type.
// This is *acktually* true but they reserve the right to change it at any point.
let keypair =
libp2p::identity::Keypair::ed25519_from_bytes(p2p.identity().to_bytes()).unwrap(); // TODO: Work out how to do this conversion
let keypair = libp2p::identity::Keypair::generate_ed25519();
// libp2p::identity::Keypair::ed25519_from_bytes(p2p.identity().to_bytes()).unwrap();
let libp2p_peer_id = Libp2pPeerId(keypair.public().to_peer_id());
let (tx, rx) = bounded(15);
@ -200,13 +201,14 @@ async fn start(
let mut ipv6_listener = None;
loop {
println!("POLL");
tokio::select! {
Ok(event) = rx.recv_async() => match event {
HookEvent::Shutdown => break,
_ => {},
},
event = swarm.select_next_some() => match event {
_ => {},
event => println!("libp2p event: {:?}", event),
},
Ok(event) = internal_rx.recv_async() => match event {
InternalEvent::RegisterListener { id, ipv4, addr, result } => {
@ -243,22 +245,46 @@ async fn start(
},
},
Some(req) = connect_rx.recv() => {
println!("{:?}\n\n", req.addrs);
let bruh = req.addrs.iter().filter(|a| a.is_ipv4()).map(socketaddr_to_quic_multiaddr).collect::<Vec<_>>();
println!("BRUH {bruh:?}");
let opts = DialOpts::unknown_peer_id()
// TODO: PR to libp2p to support multiple (their tech stack already supports it just not this builder)
.address(socketaddr_to_quic_multiaddr(req.addrs.iter().next().unwrap()))
// .address(req.addrs.iter().map(socketaddr_to_quic_multiaddr).collect())
.addresses(bruh)
.build();
// let opts = DialOpts::peer_id(PeerId::from_str("12D3KooWQ7ei5eiMWos5gkXao9YaPBwi2bHgHnam4xiLnFGLAfKy").unwrap())
// .condition(PeerCondition::Disconnected)
// .addresses(req.addrs.iter().map(socketaddr_to_quic_multiaddr).collect())
// .build();
let id = opts.connection_id();
let Err(err) = swarm.dial(opts) else {
println!("QQQ"); // TODO
swarm.behaviour_mut().state.establishing_outbound.lock().unwrap_or_else(PoisonError::into_inner).insert(id, req);
let y = swarm.behaviour_mut().state.clone();
tokio::spawn(async move {
// TODO: Timeout and remove from the map sending an error
loop {
println!("{:?}", y.establishing_outbound);
tokio::time::sleep(std::time::Duration::from_secs(100)).await;
}
});
return;
};
println!("EEE"); // TODO
warn!(
"error dialing peer '{}' with addresses '{:?}': {}",
req.to, req.addrs, err
);
let _ = req.tx.send(Err(err.to_string()));
println!("DONE"); // TODO
}
}
}

View file

@ -1,4 +1,5 @@
import {
useBridgeMutation,
useBridgeQuery,
useCache,
useConnectedPeers,
@ -32,7 +33,7 @@ function Page() {
const discoveredPeers = useDiscoveredPeers();
useNodes(result.data?.nodes);
const libraries = useCache(result.data?.items);
const p2pCtxRaw = useP2PContextRaw();
const debugConnect = useBridgeMutation(['p2p.debugConnect']);
return (
<div className="flex flex-col space-y-8">
@ -43,6 +44,7 @@ function Page() {
{[...discoveredPeers.entries()].map(([id, node]) => (
<div key={id} className="flex space-x-2">
<p>{id}</p>
<button onClick={() => debugConnect.mutate(id)}>Connect</button>
</div>
))}
</div>

View file

@ -112,6 +112,7 @@ export type Procedures = {
{ key: "nodes.updateThumbnailerPreferences", input: UpdateThumbnailerPreferences, result: null } |
{ key: "p2p.acceptSpacedrop", input: [string, string | null], result: null } |
{ key: "p2p.cancelSpacedrop", input: string, result: null } |
{ key: "p2p.debugConnect", input: RemoteIdentity, result: string } |
{ key: "p2p.spacedrop", input: SpacedropArgs, result: string } |
{ key: "preferences.update", input: LibraryArgs<LibraryPreferences>, result: null } |
{ key: "search.saved.create", input: LibraryArgs<{ name: string; search?: string | null; filters?: string | null; description?: string | null; icon?: string | null }>, result: null } |