diff --git a/Cargo.lock b/Cargo.lock index 38ef3f5e..243a5c7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,7 +14,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -23,18 +23,18 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", ] [[package]] name = "aead" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -67,24 +67,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ "cfg-if", - "cipher 0.4.3", + "cipher 0.4.4", "cpufeatures", ] -[[package]] -name = "aes-gcm" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" -dependencies = [ - "aead 0.3.2", - "aes 0.6.0", - "cipher 0.2.5", - "ctr 0.6.0", - "ghash 0.3.1", - "subtle", -] - [[package]] name = "aes-gcm" version = "0.9.4" @@ -105,9 +91,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" dependencies = [ - "aead 0.5.1", + "aead 0.5.2", "aes 0.8.2", - "cipher 0.4.3", + "cipher 0.4.4", "ctr 0.9.2", "ghash 0.5.0", "subtle", @@ -133,6 +119,28 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.8", + "once_cell", + "version_check 0.9.4", +] + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "once_cell", + "version_check 0.9.4", +] + [[package]] name = "aho-corasick" version = "0.7.20" @@ -165,9 +173,9 @@ checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -194,14 +202,14 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] name = "asn1-rs" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ "asn1-rs-derive 0.4.0", "asn1-rs-impl", @@ -210,7 +218,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] @@ -221,7 +229,7 @@ checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -233,7 +241,7 @@ checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -245,15 +253,9 @@ checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] -[[package]] -name = "asn1_der" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" - [[package]] name = "async-attributes" version = "1.1.2" @@ -261,7 +263,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -306,32 +308,31 @@ dependencies = [ [[package]] name = "async-io" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ "async-lock", "autocfg", + "cfg-if", "concurrent-queue", "futures-lite", - "libc", "log", "parking", "polling", + "rustix 0.37.7", "slab", "socket2", "waker-fn", - "windows-sys", ] [[package]] name = "async-lock" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" dependencies = [ "event-listener", - "futures-lite", ] [[package]] @@ -342,7 +343,7 @@ checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -366,7 +367,7 @@ dependencies = [ "log", "memchr", "once_cell", - "pin-project-lite", + "pin-project-lite 0.2.9", "pin-utils", "slab", "wasm-bindgen-futures", @@ -374,40 +375,41 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", + "pin-project-lite 0.2.9", ] [[package]] name = "async-stream-impl" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] name = "async-task" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" +checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" [[package]] name = "async-trait" -version = "0.1.61" +version = "0.1.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705339e0e4a9690e2908d2b3d049d85682cf19fbd5782494498fbf7003a6a282" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -426,7 +428,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite", + "pin-project-lite 0.2.9", ] [[package]] @@ -444,17 +446,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -482,7 +473,7 @@ dependencies = [ "http", "hyper", "ring", - "time 0.3.17", + "time 0.3.20", "tokio", "tower", "tracing", @@ -517,7 +508,7 @@ dependencies = [ "http-body", "lazy_static", "percent-encoding", - "pin-project-lite", + "pin-project-lite 0.2.9", "tracing", ] @@ -646,7 +637,7 @@ dependencies = [ "percent-encoding", "regex", "ring", - "time 0.3.17", + "time 0.3.20", "tracing", ] @@ -657,7 +648,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc604f278bae64bbd15854baa9c46ed69a56dfb0669d04aab80974749f2d6599" dependencies = [ "futures-util", - "pin-project-lite", + "pin-project-lite 0.2.9", "tokio", "tokio-stream", ] @@ -677,7 +668,7 @@ dependencies = [ "http", "http-body", "md-5 0.10.5", - "pin-project-lite", + "pin-project-lite 0.2.9", "sha1", "sha2 0.10.6", "tracing", @@ -700,7 +691,7 @@ dependencies = [ "hyper", "hyper-rustls 0.22.1", "lazy_static", - "pin-project-lite", + "pin-project-lite 0.2.9", "tokio", "tower", "tracing", @@ -733,7 +724,7 @@ dependencies = [ "hyper", "once_cell", "percent-encoding", - "pin-project-lite", + "pin-project-lite 0.2.9", "tokio", "tokio-util", "tracing", @@ -749,7 +740,7 @@ dependencies = [ "bytes", "http", "http-body", - "pin-project-lite", + "pin-project-lite 0.2.9", "tower", "tracing", ] @@ -782,7 +773,7 @@ dependencies = [ "itoa", "num-integer", "ryu", - "time 0.3.17", + "time 0.3.20", ] [[package]] @@ -834,12 +825,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "base64" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" - [[package]] name = "base64" version = "0.21.0" @@ -848,9 +833,9 @@ checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" [[package]] name = "base64ct" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bech32" @@ -885,6 +870,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c70beb79cbb5ce9c4f8e20849978f34225931f665bb49efa6982875a4d5facb3" + [[package]] name = "bitvec" version = "0.20.4" @@ -919,24 +910,24 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72936ee4afc7f8f736d1c38383b56480b5497b4617b4a77bdbf1d2ababc76127" +checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", "arrayvec 0.7.2", - "constant_time_eq 0.1.5", + "constant_time_eq 0.2.5", ] [[package]] name = "blake2s_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", "arrayvec 0.7.2", - "constant_time_eq 0.1.5", + "constant_time_eq 0.2.5", ] [[package]] @@ -949,7 +940,7 @@ dependencies = [ "arrayvec 0.7.2", "cc", "cfg-if", - "constant_time_eq 0.2.4", + "constant_time_eq 0.2.5", ] [[package]] @@ -971,16 +962,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ "block-padding 0.2.1", - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -1082,9 +1073,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "bytes-utils" @@ -1108,10 +1099,10 @@ dependencies = [ "iri-string 0.6.0", "libipld", "serde", - "serde_with 2.2.0", + "serde_with 2.3.2", "siwe", "thiserror", - "time 0.3.17", + "time 0.3.20", "url", ] @@ -1153,7 +1144,7 @@ dependencies = [ "cached_proc_macro_types", "darling 0.13.4", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1189,9 +1180,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" [[package]] name = "ccm" @@ -1246,9 +1237,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" dependencies = [ "iana-time-zone", "js-sys", @@ -1280,7 +1271,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -1289,14 +1280,14 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "cipher" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", @@ -1360,9 +1351,9 @@ checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" [[package]] name = "const-oid" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b" +checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "constant_time_eq" @@ -1372,25 +1363,24 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.2.4" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" + +[[package]] +name = "contextual" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" +checksum = "4e916dad4a946c830c9f199481a03be3e8d45792d5fd228c6bde51195a34d6c7" [[package]] name = "cookie" -version = "0.16.2" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" +checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24" dependencies = [ - "aes-gcm 0.10.1", - "base64 0.20.0", - "hkdf", - "hmac 0.12.1", "percent-encoding", - "rand 0.8.5", - "sha2 0.10.6", - "subtle", - "time 0.3.17", + "time 0.3.20", "version_check 0.9.4", ] @@ -1406,9 +1396,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "core2" @@ -1421,19 +1411,13 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" dependencies = [ "libc", ] -[[package]] -name = "cpuid-bool" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" - [[package]] name = "crc" version = "3.0.1" @@ -1475,9 +1459,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1485,22 +1469,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset 0.8.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ "cfg-if", ] @@ -1517,7 +1501,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -1527,7 +1511,7 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", "subtle", "zeroize", @@ -1539,28 +1523,18 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" -dependencies = [ - "generic-array 0.14.6", - "subtle", -] - [[package]] name = "crypto-mac" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -1580,16 +1554,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", - "syn", -] - -[[package]] -name = "ctr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" -dependencies = [ - "cipher 0.2.5", + "syn 1.0.109", ] [[package]] @@ -1607,7 +1572,7 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.4.3", + "cipher 0.4.4", ] [[package]] @@ -1625,9 +1590,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-pre.5" +version = "4.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67bc65846be335cb20f4e52d49a437b773a2c1fdb42b19fc84e79e6f6771536f" +checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16" dependencies = [ "cfg-if", "fiat-crypto", @@ -1639,9 +1604,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.86" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d1075c37807dcf850c379432f0df05ba52cc30f279c5cfc43cc221ce7f8579" +checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" dependencies = [ "cc", "cxxbridge-flags", @@ -1651,9 +1616,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.86" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5044281f61b27bc598f2f6647d480aed48d2bf52d6eb0b627d84c0361b17aa70" +checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" dependencies = [ "cc", "codespan-reporting", @@ -1661,24 +1626,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn", + "syn 2.0.13", ] [[package]] name = "cxxbridge-flags" -version = "1.0.86" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b50bc93ba22c27b0d31128d2d130a0a6b3d267ae27ef7e4fae2167dfe8781c" +checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" [[package]] name = "cxxbridge-macro" -version = "1.0.86" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e61fda7e62115119469c7b3591fd913ecca96fb766cfd3f2e2502ab7bc87a5" +checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -1703,12 +1668,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ - "darling_core 0.14.2", - "darling_macro 0.14.2", + "darling_core 0.14.4", + "darling_macro 0.14.4", ] [[package]] @@ -1722,7 +1687,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.9.3", - "syn", + "syn 1.0.109", ] [[package]] @@ -1736,21 +1701,21 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn", + "syn 1.0.109", ] [[package]] name = "darling_core" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim 0.10.0", - "syn", + "syn 1.0.109", ] [[package]] @@ -1761,7 +1726,7 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core 0.10.2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1772,18 +1737,18 @@ checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core 0.13.4", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "darling_macro" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ - "darling_core 0.14.2", + "darling_core 0.14.4", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1809,9 +1774,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" dependencies = [ "data-encoding", - "syn", + "syn 1.0.109", ] +[[package]] +name = "decoded-char" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5440d1dc8ea7cae44cda3c64568db29bfa2434aba51ae66a50c00488841a65a3" + [[package]] name = "der" version = "0.5.1" @@ -1829,7 +1800,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ - "const-oid 0.9.1", + "const-oid 0.9.2", "pem-rfc7468 0.6.0", "zeroize", ] @@ -1850,11 +1821,11 @@ dependencies = [ [[package]] name = "der-parser" -version = "8.1.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", "displaydoc", "nom 7.1.3", "num-bigint", @@ -1862,6 +1833,17 @@ dependencies = [ "rusticata-macros", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "derive_builder" version = "0.9.0" @@ -1872,7 +1854,7 @@ dependencies = [ "derive_builder_core 0.9.0", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1893,7 +1875,7 @@ dependencies = [ "darling 0.10.2", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1902,10 +1884,10 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" dependencies = [ - "darling 0.14.2", + "darling 0.14.4", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1915,7 +1897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" dependencies = [ "derive_builder_core 0.11.2", - "syn", + "syn 1.0.109", ] [[package]] @@ -1931,9 +1913,9 @@ dependencies = [ [[package]] name = "devise" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c7580b072f1c8476148f16e0a0d5dedddab787da98d86c5082c5e9ed8ab595" +checksum = "d6eacefd3f541c66fc61433d65e54e0e46e0a029a819a7dbbc7a7b489e8a85f8" dependencies = [ "devise_codegen", "devise_core", @@ -1941,9 +1923,9 @@ dependencies = [ [[package]] name = "devise_codegen" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "123c73e7a6e51b05c75fe1a1b2f4e241399ea5740ed810b0e3e6cacd9db5e7b2" +checksum = "9c8cf4b8dd484ede80fd5c547592c46c3745a617c8af278e2b72bea86b2dfed6" dependencies = [ "devise_core", "quote", @@ -1951,22 +1933,22 @@ dependencies = [ [[package]] name = "devise_core" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841ef46f4787d9097405cac4e70fb8644fc037b526e8c14054247c0263c400d0" +checksum = "35b50dba0afdca80b187392b24f2499a88c336d5a8493e4b4ccfb608708be56a" dependencies = [ - "bitflags", + "bitflags 2.1.0", "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn", + "syn 2.0.13", ] [[package]] name = "did-ethr" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75250c5ac4d2436007541e793f4cb4ff39734fffe9ed29c3a3d4e2f86299069b" +checksum = "0d22b1adcd156bf1041f87f80cd027bf6f82a34849bada30d59b869e831df19d" dependencies = [ "async-trait", "chrono", @@ -1981,9 +1963,9 @@ dependencies = [ [[package]] name = "did-method-key" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e30ffe2bc1957789ff1689ec03567c919a112193eec612ad55308998ebaf1a3" +checksum = "543b322ff52ab4892f4fd30ceb8fa1007aca4e3c5e89ad55793036846f0cc74e" dependencies = [ "async-trait", "multibase 0.8.0", @@ -1997,9 +1979,9 @@ dependencies = [ [[package]] name = "did-onion" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c8c2dd477d93ed2748b6ddc6c93e6dae99156a1fc99b3adbb7f8bdf0a385c63" +checksum = "d8e1ba10a5415931c5d436a6343bbd72673a42284a16d4acd501fbfb9d882db5" dependencies = [ "async-trait", "http", @@ -2011,27 +1993,29 @@ dependencies = [ [[package]] name = "did-pkh" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5e932607cfaf0a0120b944cda8ab10af564077e2738176e7f3a88c511d54ef0" +checksum = "074c4ae82880d60a25048cd3bf2e8aaaa881922d7c73fbb9ec29fc67fa0d33e4" dependencies = [ "async-trait", "bech32", "bs58", "chrono", + "iref", "serde", "serde_json", "ssi-caips", "ssi-crypto", "ssi-dids", "ssi-jwk", + "static-iref", ] [[package]] name = "did-tz" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a384ae6115903040836d8a4fc1068d5adf76cd899a3bfb3ed1cae738478c545f" +checksum = "562670fedf756b20c047dcf4ef88d020c5c86c2115f954fb3aef072952015ba4" dependencies = [ "anyhow", "async-trait", @@ -2050,9 +2034,9 @@ dependencies = [ [[package]] name = "did-web" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff7d4d4106efd76e30e19d0f19a6d3c4997cde18a0da7f9280ac4d84da3ffaf" +checksum = "9f8baea04ae1358a23bf460378573f4df91bab76c5f410455efcf2a8db476309" dependencies = [ "async-trait", "http", @@ -2063,9 +2047,9 @@ dependencies = [ [[package]] name = "did-webkey" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2102be2a97ee89322cf31fa37b2a1862f20d66fc663c761f9937296b17e5e10" +checksum = "a41245dcd63c5d9474d63b5117051f8b339497316210dab398b79237eb9417b6" dependencies = [ "anyhow", "async-trait", @@ -2096,7 +2080,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -2105,7 +2089,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -2118,14 +2102,14 @@ checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "dtoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" +checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" [[package]] name = "ecdsa" @@ -2164,9 +2148,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" @@ -2179,7 +2163,7 @@ dependencies = [ "der 0.6.1", "digest 0.10.6", "ff", - "generic-array 0.14.6", + "generic-array 0.14.7", "group", "hkdf", "pem-rfc7468 0.6.0", @@ -2192,9 +2176,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.31" +version = "0.8.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" dependencies = [ "cfg-if", ] @@ -2208,18 +2192,18 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "errno" -version = "0.2.8" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" dependencies = [ "errno-dragonfly", "libc", - "winapi", + "windows-sys 0.45.0", ] [[package]] @@ -2246,9 +2230,9 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] @@ -2265,9 +2249,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" [[package]] name = "figment" @@ -2292,12 +2276,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - [[package]] name = "flate2" version = "1.0.25" @@ -2305,6 +2283,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", + "libz-sys", "miniz_oxide", ] @@ -2356,9 +2335,9 @@ checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" [[package]] name = "futures" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -2371,9 +2350,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -2381,15 +2360,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -2399,9 +2378,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-lite" @@ -2414,19 +2393,19 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite", + "pin-project-lite 0.2.9", "waker-fn", ] [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -2442,15 +2421,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-timer" @@ -2460,9 +2439,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", @@ -2471,7 +2450,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite", + "pin-project-lite 0.2.9", "pin-utils", "slab", ] @@ -2487,15 +2466,15 @@ dependencies = [ [[package]] name = "generator" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266041a359dfa931b370ef684cceb84b166beb14f7f0421f4a6a3d0c446d12e" +checksum = "33a20a288a94683f5f4da0adecdbe095c94a77c295e514cc6484e9394dd8376e" dependencies = [ "cc", "libc", "log", "rustversion", - "windows 0.39.0", + "windows 0.44.0", ] [[package]] @@ -2509,9 +2488,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check 0.9.4", @@ -2543,16 +2522,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ghash" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" -dependencies = [ - "opaque-debug 0.3.0", - "polyval 0.4.5", -] - [[package]] name = "ghash" version = "0.4.4" @@ -2581,9 +2550,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "gloo-timers" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c4a8d6391675c6b2ee1a6c8d06e8e2d03605c44cec1270675985a4c2a5500b" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" dependencies = [ "futures-channel", "futures-core", @@ -2591,6 +2560,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "grdf" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9bbea22c05df8419a2bac76dcf144ef312c06de1db6f5d1304b1ce578890b00" +dependencies = [ + "derivative", + "hashbrown 0.13.2", + "iref", + "rdf-types", +] + [[package]] name = "group" version = "0.12.1" @@ -2604,9 +2585,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" dependencies = [ "bytes", "fnv", @@ -2632,6 +2613,18 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", +] [[package]] name = "headers" @@ -2640,7 +2633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64 0.13.1", - "bitflags", + "bitflags 1.3.2", "bytes", "headers-core", "http", @@ -2660,27 +2653,24 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" dependencies = [ "libc", ] [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" [[package]] name = "hex" @@ -2688,6 +2678,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex_fmt" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" + [[package]] name = "hkdf" version = "0.12.3" @@ -2697,23 +2693,13 @@ dependencies = [ "hmac 0.12.1", ] -[[package]] -name = "hmac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" -dependencies = [ - "crypto-mac 0.10.1", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac", "digest 0.9.0", ] @@ -2739,9 +2725,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -2756,7 +2742,7 @@ checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", - "pin-project-lite", + "pin-project-lite 0.2.9", ] [[package]] @@ -2773,9 +2759,9 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "hyper" -version = "0.14.23" +version = "0.14.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" dependencies = [ "bytes", "futures-channel", @@ -2787,7 +2773,7 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite", + "pin-project-lite 0.2.9", "socket2", "tokio", "tower-service", @@ -2840,16 +2826,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi", + "windows 0.48.0", ] [[package]] @@ -2901,9 +2887,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba7abdbb86e485125dad06c2691e1e393bf3b08c7b743b43aa162a00fd39062e" +checksum = "a9465340214b296cd17a0009acdb890d6160010b8adf8f78a00d0d7ab270f79f" dependencies = [ "async-io", "core-foundation", @@ -2920,9 +2906,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -2941,7 +2927,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -2980,12 +2966,13 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.4" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" dependencies = [ + "hermit-abi 0.3.1", "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3002,9 +2989,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" +checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" [[package]] name = "iref" @@ -3012,7 +2999,9 @@ version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72758dab8e7c250a8643189063072ab0abf48e27eb453e0a38bbd2d7770ee8ec" dependencies = [ + "hashbrown 0.13.2", "pct-str", + "serde", "smallvec", ] @@ -3032,6 +3021,18 @@ dependencies = [ "serde", ] +[[package]] +name = "is-terminal" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8" +dependencies = [ + "hermit-abi 0.3.1", + "io-lifetimes", + "rustix 0.37.7", + "windows-sys 0.45.0", +] + [[package]] name = "itertools" version = "0.10.5" @@ -3043,59 +3044,198 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" dependencies = [ "wasm-bindgen", ] [[package]] -name = "json" -version = "0.12.4" +name = "json-ld" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" +checksum = "3e445d0986fc6a6e8bbe8b2c4ba0c847b7bebd201046cc37df645d632eb4202a" +dependencies = [ + "contextual", + "futures", + "json-ld-compaction", + "json-ld-context-processing", + "json-ld-core", + "json-ld-expansion", + "json-ld-syntax", + "json-syntax", + "locspan", + "rdf-types", + "thiserror", +] [[package]] -name = "json-ld" -version = "0.4.0" +name = "json-ld-compaction" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730f40b0e5cf16f2b832f5308117271e9158718232b72235e466a71b43604983" +checksum = "cd69243e6b268c66c9cdd6f1aab73bd0d4f6df617d53e8d77238b676a9ab01c3" dependencies = [ + "contextual", + "derivative", "futures", "iref", - "json", + "json-ld-context-processing", + "json-ld-core", + "json-ld-expansion", + "json-ld-syntax", + "json-syntax", "langtag", - "log", + "locspan", "mown", - "once_cell", + "rdf-types", + "thiserror", ] [[package]] -name = "json-patch" -version = "0.2.7" +name = "json-ld-context-processing" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce" +checksum = "6162a8b000517178a4a23f546fa7fef31a0cac466393ef922a351d8e6041fb8f" dependencies = [ - "serde", - "serde_json", - "treediff", + "contextual", + "futures", + "iref", + "json-ld-core", + "json-ld-syntax", + "locspan", + "mown", + "rdf-types", + "thiserror", ] [[package]] -name = "k256" -version = "0.11.6" +name = "json-ld-core" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +checksum = "f103ff1c30bf42b3b7d09c69cbe12869e5ad42497638c5199d83de6fd7d7b13e" dependencies = [ - "cfg-if", - "ecdsa", + "contextual", + "derivative", + "futures", + "hashbrown 0.13.2", + "iref", + "json-ld-syntax", + "json-syntax", + "langtag", + "locspan", + "locspan-derive", + "log", + "mime", + "mown", + "once_cell", + "permutohedron", + "pretty_dtoa", + "rdf-types", + "ryu-js", + "smallvec", + "static-iref", + "thiserror", +] + +[[package]] +name = "json-ld-expansion" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ec3b334e7ae66e64a139ac34f38d3559dd82e7a0deed8891d1897a933a006cc" +dependencies = [ + "contextual", + "derivative", + "futures", + "iref", + "json-ld-context-processing", + "json-ld-core", + "json-ld-syntax", + "json-syntax", + "langtag", + "locspan", + "mown", + "rdf-types", + "thiserror", +] + +[[package]] +name = "json-ld-syntax" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fe7e17ed956850ff813815c960dcf3ab80604d72a2590ddebf8112509fb3722" +dependencies = [ + "contextual", + "decoded-char", + "derivative", + "hashbrown 0.13.2", + "indexmap", + "iref", + "json-syntax", + "langtag", + "locspan", + "locspan-derive", + "rdf-types", + "smallvec", + "thiserror", +] + +[[package]] +name = "json-number" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c724484d970b5aabe46934b9571980e255fd50a9ef1b13f23ed2b5c2a19bbb69" +dependencies = [ + "lexical", + "ryu-js", + "serde", + "smallvec", +] + +[[package]] +name = "json-patch" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce" +dependencies = [ + "serde", + "serde_json", + "treediff", +] + +[[package]] +name = "json-syntax" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e3473c7c1719795449173b4d4d89c653598df3ddbc2f32b73bd9ceab8cc2dfb" +dependencies = [ + "contextual", + "decoded-char", + "hashbrown 0.12.3", + "indexmap", + "json-number", + "locspan", + "locspan-derive", + "ryu-js", + "serde", + "smallstr", + "smallvec", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa", "elliptic-curve", "sha2 0.10.6", "sha3 0.10.6", @@ -3137,6 +3277,7 @@ dependencies = [ "bs58", "cached 0.40.0", "derive_builder 0.11.2", + "either", "futures", "hex", "hyper", @@ -3159,7 +3300,7 @@ dependencies = [ "sled", "tempfile", "thiserror", - "time 0.3.17", + "time 0.3.20", "tokio", "tokio-stream", "tokio-util", @@ -3212,7 +3353,7 @@ dependencies = [ "serde_json", "serde_with 1.14.0", "thiserror", - "time 0.3.17", + "time 0.3.20", "tokio", "tracing", ] @@ -3229,7 +3370,7 @@ dependencies = [ "serde", "serde_json", "serde_with 1.14.0", - "time 0.3.17", + "time 0.3.20", "wasm-bindgen", "wasm-bindgen-futures", ] @@ -3245,9 +3386,9 @@ dependencies = [ [[package]] name = "langtag" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb570ff14fe16874719449cb4834c4dfe32d79306ebcb2195ee89a2b597da3b" +checksum = "d78b08c3742c6e025dac6db28d42a961411470194bc4ec2ef22ba16bbc38da03" [[package]] name = "lazy_static" @@ -3258,11 +3399,84 @@ dependencies = [ "spin 0.5.2", ] +[[package]] +name = "lexical" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" +dependencies = [ + "lexical-core", +] + +[[package]] +name = "lexical-core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" +dependencies = [ + "lexical-parse-integer", + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-parse-integer" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-util" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "lexical-write-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" +dependencies = [ + "lexical-util", + "lexical-write-integer", + "static_assertions", +] + +[[package]] +name = "lexical-write-integer" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +dependencies = [ + "lexical-util", + "static_assertions", +] + [[package]] name = "libc" -version = "0.2.139" +version = "0.2.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" [[package]] name = "libipld" @@ -3304,7 +3518,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -3358,45 +3572,97 @@ checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libp2p" -version = "0.51.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +version = "0.51.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab78d6d2201578bb3a33dff33c540af6b8f0bdcd751b4028e798e868c2ca0722" dependencies = [ "bytes", "futures", "futures-timer", "getrandom 0.2.8", "instant", + "libp2p-allow-block-list", + "libp2p-autonat", + "libp2p-connection-limits", "libp2p-core", + "libp2p-dcutr", "libp2p-dns", + "libp2p-gossipsub", + "libp2p-identify", + "libp2p-identity", + "libp2p-kad", "libp2p-mdns", "libp2p-metrics", "libp2p-mplex", "libp2p-noise", "libp2p-ping", "libp2p-quic", + "libp2p-relay", "libp2p-swarm", "libp2p-tcp", + "libp2p-wasm-ext", "libp2p-webrtc", + "libp2p-websocket", "libp2p-yamux", "multiaddr", - "parking_lot 0.12.1", "pin-project", - "smallvec", +] + +[[package]] +name = "libp2p-allow-block-list" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c54073648b20bb47335164544a4e5694434f44530f47a4f6618f5f585f3ff5" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-autonat" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d85a24ab50a85cbcfccf20ccdb02d903e6198d9cee5e67aa122dbfe66824d087" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-request-response", + "libp2p-swarm", + "log", + "quick-protobuf", + "rand 0.8.5", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", ] [[package]] name = "libp2p-core" -version = "0.39.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7f8b7d65c070a5a1b5f8f0510648189da08f787b8963f8e21219e0710733af" dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", "either", "fnv", "futures", "futures-timer", "instant", + "libp2p-identity", "log", "multiaddr", "multihash 0.17.0", @@ -3407,19 +3673,38 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "rw-stream-sink", - "sec1", - "sha2 0.10.6", "smallvec", "thiserror", "unsigned-varint", "void", - "zeroize", +] + +[[package]] +name = "libp2p-dcutr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a8854d223a4145d7cf0652553fe606df397cfd96f9bb7f62d7d0a2b2332ca1b" +dependencies = [ + "asynchronous-codec", + "either", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "quick-protobuf", + "quick-protobuf-codec", + "thiserror", + "void", ] [[package]] name = "libp2p-dns" version = "0.39.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" dependencies = [ "futures", "libp2p-core", @@ -3429,15 +3714,115 @@ dependencies = [ "trust-dns-resolver", ] +[[package]] +name = "libp2p-gossipsub" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c95818acf1d0d917712dd3bf4e73c4839e6fca6329d70ba9968cecc6bbb7e4" +dependencies = [ + "asynchronous-codec", + "base64 0.21.0", + "byteorder", + "bytes", + "fnv", + "futures", + "hex_fmt", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "prometheus-client", + "quick-protobuf", + "quick-protobuf-codec", + "rand 0.8.5", + "regex", + "sha2 0.10.6", + "smallvec", + "thiserror", + "unsigned-varint", + "wasm-timer", +] + +[[package]] +name = "libp2p-identify" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40d1da1f75baf824cfdc80f6aced51f7cbf8dc14e32363e9443570a80d4ee337" +dependencies = [ + "asynchronous-codec", + "either", + "futures", + "futures-timer", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "lru", + "quick-protobuf", + "quick-protobuf-codec", + "smallvec", + "thiserror", + "void", +] + +[[package]] +name = "libp2p-identity" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a8ea433ae0cea7e3315354305237b9897afe45278b2118a7a57ca744e70fd27" +dependencies = [ + "bs58", + "ed25519-dalek", + "log", + "multiaddr", + "multihash 0.17.0", + "prost", + "quick-protobuf", + "rand 0.8.5", + "thiserror", + "zeroize", +] + +[[package]] +name = "libp2p-kad" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bc57e02d7ad49a63792370f24b829af38f34982ff56556e59e4cb325a4dbf6b" +dependencies = [ + "arrayvec 0.7.2", + "asynchronous-codec", + "bytes", + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "quick-protobuf", + "rand 0.8.5", + "sha2 0.10.6", + "smallvec", + "thiserror", + "uint", + "unsigned-varint", + "void", +] + [[package]] name = "libp2p-mdns" -version = "0.43.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" dependencies = [ "data-encoding", "futures", "if-watch", "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", "rand 0.8.5", @@ -3451,10 +3836,16 @@ dependencies = [ [[package]] name = "libp2p-metrics" version = "0.12.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" dependencies = [ "libp2p-core", + "libp2p-dcutr", + "libp2p-gossipsub", + "libp2p-identify", + "libp2p-kad", "libp2p-ping", + "libp2p-relay", "libp2p-swarm", "prometheus-client", ] @@ -3462,7 +3853,8 @@ dependencies = [ [[package]] name = "libp2p-mplex" version = "0.39.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d34780b514b159e6f3fd70ba3e72664ec89da28dca2d1e7856ee55e2c7031ba" dependencies = [ "asynchronous-codec", "bytes", @@ -3478,13 +3870,15 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.42.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c87c2803deffeae94108072a0387f8c9ff494af68a4908454c11c811e27b5e5" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", "libp2p-core", + "libp2p-identity", "log", "once_cell", "quick-protobuf", @@ -3500,8 +3894,10 @@ dependencies = [ [[package]] name = "libp2p-ping" version = "0.42.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" dependencies = [ + "either", "futures", "futures-timer", "instant", @@ -3514,14 +3910,16 @@ dependencies = [ [[package]] name = "libp2p-quic" -version = "0.7.0-alpha.2" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +version = "0.7.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" dependencies = [ "bytes", "futures", "futures-timer", "if-watch", "libp2p-core", + "libp2p-identity", "libp2p-tls", "log", "parking_lot 0.12.1", @@ -3532,10 +3930,53 @@ dependencies = [ "tokio", ] +[[package]] +name = "libp2p-relay" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a56a60045a02298defcd7633e770ad1277fea68ca6e9620b52c79bba277ae21" +dependencies = [ + "asynchronous-codec", + "bytes", + "either", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "quick-protobuf", + "quick-protobuf-codec", + "rand 0.8.5", + "static_assertions", + "thiserror", + "void", +] + +[[package]] +name = "libp2p-request-response" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872b9d63fed44d9f81110c30be6c7ca5593a093576d2a95c5d018051e294d2e9" +dependencies = [ + "async-trait", + "bytes", + "futures", + "instant", + "libp2p-core", + "libp2p-swarm", + "log", + "rand 0.8.5", + "smallvec", + "unsigned-varint", +] + [[package]] name = "libp2p-swarm" -version = "0.42.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd1e223f02fcd7e3790f9b954e2e81791810e3512daeb27fa97df7652e946bc2" dependencies = [ "either", "fnv", @@ -3543,19 +3984,31 @@ dependencies = [ "futures-timer", "instant", "libp2p-core", + "libp2p-identity", + "libp2p-swarm-derive", "log", - "pin-project", "rand 0.8.5", "smallvec", - "thiserror", "tokio", "void", ] +[[package]] +name = "libp2p-swarm-derive" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" +dependencies = [ + "heck", + "quote", + "syn 1.0.109", +] + [[package]] name = "libp2p-tcp" version = "0.39.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" dependencies = [ "futures", "futures-timer", @@ -3569,12 +4022,14 @@ dependencies = [ [[package]] name = "libp2p-tls" -version = "0.1.0-alpha.2" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" dependencies = [ "futures", "futures-rustls", "libp2p-core", + "libp2p-identity", "rcgen 0.10.0", "ring", "rustls 0.20.8", @@ -3584,10 +4039,25 @@ dependencies = [ "yasna", ] +[[package]] +name = "libp2p-wasm-ext" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" +dependencies = [ + "futures", + "js-sys", + "libp2p-core", + "parity-send-wrapper", + "wasm-bindgen", + "wasm-bindgen-futures", +] + [[package]] name = "libp2p-webrtc" -version = "0.4.0-alpha.2" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +version = "0.4.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dba48592edbc2f60b4bc7c10d65445b0c3964c07df26fdf493b6880d33be36f8" dependencies = [ "async-trait", "asynchronous-codec", @@ -3597,12 +4067,12 @@ dependencies = [ "hex", "if-watch", "libp2p-core", + "libp2p-identity", "libp2p-noise", "log", "multihash 0.17.0", - "prost", - "prost-build", - "prost-codec", + "quick-protobuf", + "quick-protobuf-codec", "rand 0.8.5", "rcgen 0.9.3", "serde", @@ -3614,10 +4084,30 @@ dependencies = [ "webrtc", ] +[[package]] +name = "libp2p-websocket" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" +dependencies = [ + "either", + "futures", + "futures-rustls", + "libp2p-core", + "log", + "parking_lot 0.12.1", + "quicksink", + "rw-stream-sink", + "soketto", + "url", + "webpki-roots", +] + [[package]] name = "libp2p-yamux" version = "0.43.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d048cd82f72c8800655aa1ee9b808ea8c9d523a649d3579b3ef0cfe23952d7fd" dependencies = [ "futures", "libp2p-core", @@ -3627,6 +4117,17 @@ dependencies = [ "yamux", ] +[[package]] +name = "libz-sys" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "link-cplusplus" version = "1.0.8" @@ -3648,6 +4149,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +[[package]] +name = "linux-raw-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" + [[package]] name = "lock_api" version = "0.4.9" @@ -3658,6 +4165,28 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "locspan" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685e26b5a3e4266c351baf3c00793a097e40f4293270ac508b3f4cbc41e72e54" +dependencies = [ + "contextual", + "hashbrown 0.13.2", +] + +[[package]] +name = "locspan-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88991223b049a3d29ca1f60c05639581336a0f3ee4bf8a659dddecc11c4961a" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "log" version = "0.4.17" @@ -3683,6 +4212,15 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "lru" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "lru-cache" version = "0.1.2" @@ -3709,9 +4247,9 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "md-5" @@ -3750,18 +4288,18 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" dependencies = [ "autocfg", ] [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "minimal-lexical" @@ -3780,14 +4318,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.45.0", ] [[package]] @@ -3798,9 +4336,9 @@ checksum = "e7627d8bbeb17edbf1c3f74b21488e4af680040da89713b4217d0010e9cbd97e" [[package]] name = "multer" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed4198ce7a4cbd2a57af78d28c6fbb57d81ac5f1d6ad79ac6c5587419cbdf22" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" dependencies = [ "bytes", "encoding_rs", @@ -3810,7 +4348,7 @@ dependencies = [ "log", "memchr", "mime", - "spin 0.9.4", + "spin 0.9.8", "tokio", "tokio-util", "version_check 0.9.4", @@ -3818,13 +4356,14 @@ dependencies = [ [[package]] name = "multiaddr" -version = "0.17.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b53e0cc5907a5c216ba6584bf74be8ab47d6d6289f72793b2dddbf15dc3bf8c" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" dependencies = [ "arrayref", "byteorder", "data-encoding", + "log", "multibase 0.9.1", "multihash 0.17.0", "percent-encoding", @@ -3862,7 +4401,7 @@ version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc" dependencies = [ - "blake2b_simd 1.0.0", + "blake2b_simd 1.0.1", "blake2s_simd", "blake3", "core2", @@ -3890,28 +4429,23 @@ dependencies = [ [[package]] name = "multihash-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - [[package]] name = "multistream-select" version = "0.12.1" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" dependencies = [ "bytes", "futures", @@ -3958,7 +4492,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -3967,9 +4501,9 @@ dependencies = [ [[package]] name = "netlink-packet-utils" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25af9cf0dc55498b7bd94a1508af7a78706aa0ab715a73c5169273e03c84845e" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ "anyhow", "byteorder", @@ -3994,9 +4528,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b654097027250401127914afb37cb1f311df6610a9891ff07a757e94199027" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "bytes", "futures", @@ -4011,7 +4545,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -4090,7 +4624,7 @@ checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4149,14 +4683,14 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", ] [[package]] name = "once_cell" -version = "1.17.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "opaque-debug" @@ -4172,11 +4706,11 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.45" +version = "0.10.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1" +checksum = "4d2f106ab837a24e03672c59b1239669a0596406ff657c3c0835b6b7f0f35a33" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "foreign-types", "libc", @@ -4187,13 +4721,13 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -4204,20 +4738,19 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "111.24.0+1.1.1s" +version = "111.25.2+1.1.1t" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3498f259dab01178c6228c6b00dcef0ed2a2d5e20d648c017861227773ea4abd" +checksum = "320708a054ad9b3bf314688b5db87cf4d6683d64cfc835e2337924ae62bf4431" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.80" +version = "0.9.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7" +checksum = "3a20eace9dc2d82904039cb76dcf50fb1a0bba071cfd1629720b5d6f1ddba0fa" dependencies = [ - "autocfg", "cc", "libc", "openssl-src", @@ -4334,6 +4867,12 @@ dependencies = [ "libm 0.1.4", ] +[[package]] +name = "parity-send-wrapper" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" + [[package]] name = "parking" version = "2.0.0" @@ -4358,7 +4897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.6", + "parking_lot_core 0.9.7", ] [[package]] @@ -4370,41 +4909,44 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi", ] [[package]] name = "parking_lot_core" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", - "windows-sys", + "windows-sys 0.45.0", ] [[package]] name = "paste" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" [[package]] name = "pct-str" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1240e3e7bfdde5660ba0fc3e9e3565d3b30c2ae1973e218e93b869da771ff2e9" +checksum = "77d207ec8d182c2fef45f028b9b9507770df19e89b3e14827ccd95d4a23f6003" +dependencies = [ + "utf8-decode", +] [[package]] name = "pear" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e44241c5e4c868e3eaa78b7c1848cadd6344ed4f54d029832d32b415a58702" +checksum = "0ec95680a7087503575284e5063e14b694b7a9c0b065e5dceec661e0497127e8" dependencies = [ "inlinable_string", "pear_codegen", @@ -4413,14 +4955,14 @@ dependencies = [ [[package]] name = "pear_codegen" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a5ca643c2303ecb740d506539deba189e16f2754040a42901cd8105d0282d0" +checksum = "9661a3a53f93f09f2ea882018e4d7c88f6ff2956d809a276060476fd8c879d3c" dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -4457,14 +4999,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] -name = "petgraph" -version = "0.6.2" +name = "permutohedron" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" -dependencies = [ - "fixedbitset", - "indexmap", -] +checksum = "b687ff7b5da449d39e418ad391e5e08da53ec334903ddbb921db208908fc372c" [[package]] name = "pgp" @@ -4492,7 +5030,7 @@ dependencies = [ "digest 0.9.0", "ed25519-dalek", "flate2", - "generic-array 0.14.6", + "generic-array 0.14.7", "hex", "lazy_static", "log", @@ -4532,9 +5070,15 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] +[[package]] +name = "pin-project-lite" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" + [[package]] name = "pin-project-lite" version = "0.2.9" @@ -4593,16 +5137,18 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polling" -version = "2.5.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" +checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa" dependencies = [ "autocfg", + "bitflags 1.3.2", "cfg-if", + "concurrent-queue", "libc", "log", - "wepoll-ffi", - "windows-sys", + "pin-project-lite 0.2.9", + "windows-sys 0.45.0", ] [[package]] @@ -4616,17 +5162,6 @@ dependencies = [ "universal-hash 0.4.1", ] -[[package]] -name = "polyval" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" -dependencies = [ - "cpuid-bool", - "opaque-debug 0.3.0", - "universal-hash 0.4.1", -] - [[package]] name = "polyval" version = "0.5.3" @@ -4658,13 +5193,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] -name = "prettyplease" -version = "0.1.23" +name = "pretty_dtoa" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" +checksum = "a239bcdfda2c685fda1add3b4695c06225f50075e3cfb5b954e91545587edff2" dependencies = [ - "proc-macro2", - "syn", + "ryu_floating_decimal", ] [[package]] @@ -4679,11 +5213,10 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "once_cell", "thiserror", "toml", ] @@ -4697,7 +5230,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "version_check 0.9.4", ] @@ -4714,22 +5247,22 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] [[package]] name = "proc-macro2-diagnostics" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada" +checksum = "606c4ba35817e2922a308af55ad51bab3645b59eae5c570d4a6cf07e36bd493b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", "version_check 0.9.4", "yansi", ] @@ -4740,11 +5273,11 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1de8dacb0873f77e6aefc6d71e044761fcc68060290f5b1089fcdf84626bb69" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "hex", "lazy_static", - "rustix", + "rustix 0.36.12", ] [[package]] @@ -4766,92 +5299,48 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" +checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", "parking_lot 0.12.1", - "prometheus-client-derive-text-encode", + "prometheus-client-derive-encode", ] [[package]] -name = "prometheus-client-derive-text-encode" -version = "0.3.0" +name = "prometheus-client-derive-encode" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" +checksum = "72b6a5217beb0ad503ee7fa752d451c905113d70721b937126158f3106a48cc1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "prost" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698" +checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537" dependencies = [ "bytes", "prost-derive", ] -[[package]] -name = "prost-build" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f8ad728fb08fe212df3c05169e940fbb6d9d16a877ddde14644a983ba2012e" -dependencies = [ - "bytes", - "heck", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn", - "tempfile", - "which", -] - -[[package]] -name = "prost-codec" -version = "0.3.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" -dependencies = [ - "asynchronous-codec", - "bytes", - "prost", - "thiserror", - "unsigned-varint", -] - [[package]] name = "prost-derive" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda8c0881ea9f722eb9629376db3d0b903b462477c1aafcb0566610ac28ac5d" +checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn", -] - -[[package]] -name = "prost-types" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788" -dependencies = [ - "bytes", - "prost", + "syn 1.0.109", ] [[package]] @@ -4875,11 +5364,35 @@ dependencies = [ "byteorder", ] +[[package]] +name = "quick-protobuf-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +dependencies = [ + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror", + "unsigned-varint", +] + +[[package]] +name = "quicksink" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" +dependencies = [ + "futures-core", + "futures-sink", + "pin-project-lite 0.1.12", +] + [[package]] name = "quinn-proto" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4ced82a24bb281af338b9e8f94429b6eca01b4e66d899f40031f074e74c9" +checksum = "67c10f662eee9c94ddd7135043e544f3c82fa839a1e7b865911331961b53186c" dependencies = [ "bytes", "rand 0.8.5", @@ -4895,9 +5408,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -4987,7 +5500,7 @@ checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.17", + "time 0.3.20", "x509-parser 0.13.2", "yasna", ] @@ -5000,44 +5513,66 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", "ring", - "time 0.3.17", + "time 0.3.20", "yasna", ] +[[package]] +name = "rdf-types" +version = "0.12.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63d95f82a1f30f2d62e77b775ef4863f67ffafef1fc2c95ebfb55f3750be55df" +dependencies = [ + "contextual", + "iref", + "langtag", + "locspan", + "locspan-derive", +] + [[package]] name = "redox_syscall" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", ] [[package]] name = "ref-cast" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c78fb8c9293bcd48ef6fce7b4ca950ceaf21210de6e105a883ee280c0f7b9ed" +checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f" +checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] name = "regex" -version = "1.7.1" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" dependencies = [ "aho-corasick", "memchr", @@ -5055,26 +5590,17 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "reqwest" -version = "0.11.13" +version = "0.11.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" +checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" dependencies = [ - "base64 0.13.1", + "base64 0.21.0", "bytes", "encoding_rs", "futures-core", @@ -5092,7 +5618,7 @@ dependencies = [ "native-tls", "once_cell", "percent-encoding", - "pin-project-lite", + "pin-project-lite 0.2.9", "rustls 0.20.8", "rustls-pemfile", "serde", @@ -5160,26 +5686,26 @@ dependencies = [ [[package]] name = "rocket" -version = "0.5.0-rc.2" +version = "0.5.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98ead083fce4a405feb349cf09abdf64471c6077f14e0ce59364aa90d4b99317" +checksum = "58734f7401ae5cfd129685b48f61182331745b357b96f2367f01aebaf1cc9cc9" dependencies = [ "async-stream", "async-trait", "atomic", - "atty", "binascii", "bytes", "either", "figment", "futures", "indexmap", + "is-terminal", "log", "memchr", "multer", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite", + "pin-project-lite 0.2.9", "rand 0.8.5", "ref-cast", "rocket_codegen", @@ -5188,7 +5714,7 @@ dependencies = [ "serde_json", "state", "tempfile", - "time 0.3.17", + "time 0.3.20", "tokio", "tokio-stream", "tokio-util", @@ -5199,9 +5725,9 @@ dependencies = [ [[package]] name = "rocket_codegen" -version = "0.5.0-rc.2" +version = "0.5.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6aeb6bb9c61e9cd2c00d70ea267bf36f76a4cc615e5908b349c2f9d93999b47" +checksum = "7093353f14228c744982e409259fb54878ba9563d08214f2d880d59ff2fc508b" dependencies = [ "devise", "glob", @@ -5209,15 +5735,15 @@ dependencies = [ "proc-macro2", "quote", "rocket_http", - "syn", + "syn 2.0.13", "unicode-xid", ] [[package]] name = "rocket_http" -version = "0.5.0-rc.2" +version = "0.5.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ded65d127954de3c12471630bf4b81a2792f065984461e65b91d0fdaafc17a2" +checksum = "936012c99162a03a67f37f9836d5f938f662e26f2717809761a9ac46432090f4" dependencies = [ "cookie", "either", @@ -5229,13 +5755,13 @@ dependencies = [ "memchr", "pear", "percent-encoding", - "pin-project-lite", + "pin-project-lite 0.2.9", "ref-cast", "serde", "smallvec", "stable-pattern", "state", - "time 0.3.17", + "time 0.3.20", "tokio", "uncased", ] @@ -5326,16 +5852,30 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.6" +version = "0.36.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0af200a3324fa5bcd922e84e9b55a298ea9f431a489f01961acdebc6e908f25" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustix" +version = "0.37.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4feacf7db682c6c329c4ede12649cd36ecab0f3be5b7d74e6a20304725db4549" +checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", - "linux-raw-sys", - "windows-sys", + "linux-raw-sys 0.3.1", + "windows-sys 0.45.0", ] [[package]] @@ -5386,14 +5926,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" [[package]] name = "rw-stream-sink" version = "0.3.0" -source = "git+https://github.com/kckeiks/rust-libp2p/?branch=use-quick-protobuf#ec86e1f44feac97559b1b786560dc6b7639d8664" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" dependencies = [ "futures", "pin-project", @@ -5402,9 +5943,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "ryu-js" @@ -5412,6 +5953,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6518fc26bced4d53678a22d6e423e9d8716377def84545fe328236e3af070e7f" +[[package]] +name = "ryu_floating_decimal" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "700de91d5fd6091442d00fdd9ee790af6d4f0f480562b0f5a1e8f59e90aafe73" + [[package]] name = "safemem" version = "0.3.3" @@ -5424,7 +5971,7 @@ version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" dependencies = [ - "windows-sys", + "windows-sys 0.42.0", ] [[package]] @@ -5441,9 +5988,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" [[package]] name = "sct" @@ -5485,7 +6032,7 @@ checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ "base16ct", "der 0.6.1", - "generic-array 0.14.6", + "generic-array 0.14.7", "pkcs8 0.9.0", "subtle", "zeroize", @@ -5493,11 +6040,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.7.0" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -5506,9 +6053,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" dependencies = [ "core-foundation-sys", "libc", @@ -5516,15 +6063,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" dependencies = [ "serde_derive", ] @@ -5540,22 +6087,22 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718dc5fff5b36f99093fc49b280cfc96ce6fc824317783bff5a1fed0c7a64819" +checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -5571,9 +6118,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" dependencies = [ "itoa", "ryu", @@ -5606,9 +6153,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.2.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d904179146de381af4c93d3af6ca4984b3152db687dacb9c3c35e86f39809c" +checksum = "331bb8c3bf9b92457ab7abecf07078c13f7d270ba490103e84e8b014490cd0b0" dependencies = [ "base64 0.13.1", "chrono", @@ -5616,8 +6163,8 @@ dependencies = [ "indexmap", "serde", "serde_json", - "serde_with_macros 2.2.0", - "time 0.3.17", + "serde_with_macros 2.3.2", + "time 0.3.20", ] [[package]] @@ -5629,19 +6176,19 @@ dependencies = [ "darling 0.13.4", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "serde_with_macros" -version = "2.2.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1966009f3c05f095697c537312f5415d1e3ed31ce0a56942bac4c771c5c335e" +checksum = "859011bddcc11f289f07f467cc1fe01c7a941daa4d8f6c40d4d1c92eb6d9319c" dependencies = [ - "darling 0.14.2", + "darling 0.14.4", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -5737,9 +6284,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] @@ -5779,7 +6326,7 @@ dependencies = [ "rand 0.8.5", "sha3 0.10.6", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] @@ -5798,9 +6345,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] @@ -5821,6 +6368,15 @@ dependencies = [ "parking_lot 0.11.2", ] +[[package]] +name = "smallstr" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b1aefdf380735ff8ded0b15f31aab05daf1f70216c01c02a12926badd1df9d" +dependencies = [ + "smallvec", +] + [[package]] name = "smallvec" version = "1.10.0" @@ -5829,14 +6385,14 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "snow" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774d05a3edae07ce6d68ea6984f3c05e9bba8927e3dd591e3b479e5b03213d0d" +checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733" dependencies = [ "aes-gcm 0.9.4", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-pre.5", + "curve25519-dalek 4.0.0-rc.1", "rand_core 0.6.4", "ring", "rustc_version", @@ -5846,14 +6402,30 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", ] +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "flate2", + "futures", + "httparse", + "log", + "rand 0.8.5", + "sha-1", +] + [[package]] name = "spin" version = "0.5.2" @@ -5862,9 +6434,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spin" -version = "0.9.4" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spki" @@ -5899,9 +6471,9 @@ dependencies = [ [[package]] name = "ssi" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62521adfd20b984c8d875c00127bbdc67915609249e17d79f4ce5122cfb8b7b" +checksum = "0a74add6dcfc3599495a73e953a7126ea19e9a0fc81860f5d593cabf1322cdf9" dependencies = [ "ssi-caips", "ssi-core", @@ -5965,9 +6537,9 @@ dependencies = [ [[package]] name = "ssi-dids" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6c4191aa84b78e5d1a726a5d9ee6c5927be2ee3052df56a94afad38a41af2a" +checksum = "62e3c375b0fb2129c691e65e776c9105290ade34b56f39755f4f9c40ba98e41c" dependencies = [ "anyhow", "async-trait", @@ -5975,6 +6547,7 @@ dependencies = [ "chrono", "derive_builder 0.9.0", "hex", + "iref", "multibase 0.8.0", "percent-encoding", "reqwest", @@ -5985,27 +6558,29 @@ dependencies = [ "ssi-core", "ssi-json-ld", "ssi-jwk", + "static-iref", "thiserror", ] [[package]] name = "ssi-json-ld" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91e421f426dad328e5ef7bf8e3b9cc237a58c8ab3168ebbcea58ed154684ef6" +checksum = "b90b3723421b79dcefdbe65ee92d6f7a9d74b6d42de57afeca7d8286424faa14" dependencies = [ "async-std", - "chrono", "combination", "futures", + "grdf", "iref", - "json", "json-ld", + "json-syntax", "lazy_static", - "serde_jcs", - "serde_json", + "locspan", + "rdf-types", "ssi-contexts", "ssi-crypto", + "static-iref", "thiserror", ] @@ -6072,17 +6647,22 @@ dependencies = [ [[package]] name = "ssi-ldp" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ad5069e8f86afa0bff9f1985d39f27227679403176aa62302808c6b60245c6a" +checksum = "82090294dfa901a4b0015d1fffb0274ef2a63641b0a2805b87f59a2111dd6c44" dependencies = [ "async-trait", "bs58", "chrono", + "grdf", "hex", + "iref", + "json-syntax", "k256", "lazy_static", + "locspan", "multibase 0.8.0", + "rdf-types", "serde", "serde_jcs", "serde_json", @@ -6094,6 +6674,7 @@ dependencies = [ "ssi-json-ld", "ssi-jwk", "ssi-jws", + "static-iref", "thiserror", ] @@ -6123,9 +6704,9 @@ dependencies = [ [[package]] name = "ssi-ucan" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6ad6188ca16843b56891f51a27a710c277df9ec2236506737b211324eceaaf" +checksum = "0982f62c7860922026a9d9edc6c604de79693ee4c5c6bd65be11e2ff66b1df09" dependencies = [ "base64 0.12.3", "chrono", @@ -6144,9 +6725,9 @@ dependencies = [ [[package]] name = "ssi-vc" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f15fe7dc4e5bb0f245831f0f46ca670cf4b6c49ce17bc4648f15a28c97f6e640" +checksum = "24416d7b6536a48bf3954d9c6596219cd0ebbbc37016ec8d365fe477209336d0" dependencies = [ "async-trait", "base64 0.12.3", @@ -6154,6 +6735,7 @@ dependencies = [ "cacaos", "chrono", "flate2", + "iref", "libipld", "multihash 0.16.3", "reqwest", @@ -6172,11 +6754,12 @@ dependencies = [ [[package]] name = "ssi-zcap-ld" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bc022f05ed4fcca2865f27fb9dbf38b5ff3c3e12c8f34cb8ff11666f4cfad76" +checksum = "7c6b6a1e8e36842c9f69209f3ea0da7e979da126d352734a94a5eae2ed01ede1" dependencies = [ "async-trait", + "iref", "serde", "serde_json", "ssi-core", @@ -6205,6 +6788,15 @@ dependencies = [ "loom", ] +[[package]] +name = "static-iref" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9786d4b8e9e5423fe85c57a826d7e0f0774746149a2ccd21e2104ff74b71ce7" +dependencies = [ + "iref", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -6259,9 +6851,20 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" dependencies = [ "proc-macro2", "quote", @@ -6276,7 +6879,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "unicode-xid", ] @@ -6286,7 +6889,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -6309,16 +6912,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ "cfg-if", "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", + "redox_syscall 0.3.5", + "rustix 0.37.7", + "windows-sys 0.45.0", ] [[package]] @@ -6332,30 +6934,31 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if", "once_cell", ] @@ -6394,9 +6997,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.17" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ "itoa", "js-sys", @@ -6413,9 +7016,9 @@ checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" [[package]] name = "time-macros" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" dependencies = [ "time-core", ] @@ -6450,46 +7053,45 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.24.2" +version = "1.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a12a59981d9e3c38d216785b0c37399f6e415e8d0712047620f189371b0bb" +checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" dependencies = [ "autocfg", "bytes", "libc", - "memchr", "mio", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite", + "pin-project-lite 0.2.9", "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys", + "windows-sys 0.45.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] name = "tokio-native-tls" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", "tokio", @@ -6531,35 +7133,35 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" +checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" dependencies = [ "futures-core", - "pin-project-lite", + "pin-project-lite 0.2.9", "tokio", ] [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite", + "pin-project-lite 0.2.9", "tokio", "tracing", ] [[package]] name = "toml" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] @@ -6573,7 +7175,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite", + "pin-project-lite 0.2.9", "tokio", "tower-layer", "tower-service", @@ -6600,7 +7202,7 @@ checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", "log", - "pin-project-lite", + "pin-project-lite 0.2.9", "tracing-attributes", "tracing-core", ] @@ -6613,7 +7215,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6812,15 +7414,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-normalization" @@ -6849,7 +7451,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -6871,6 +7473,8 @@ checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" dependencies = [ "asynchronous-codec", "bytes", + "futures-io", + "futures-util", ] [[package]] @@ -6896,11 +7500,17 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" +[[package]] +name = "utf8-decode" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca61eb27fa339aa08826a29f03e87b99b4d8f0fc2255306fd266bb1b6a9de498" + [[package]] name = "uuid" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" dependencies = [ "getrandom 0.2.8", "wasm-bindgen", @@ -6991,9 +7601,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -7001,24 +7611,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" dependencies = [ "cfg-if", "js-sys", @@ -7028,9 +7638,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7038,28 +7648,43 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" + +[[package]] +name = "wasm-timer" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" dependencies = [ "js-sys", "wasm-bindgen", @@ -7120,7 +7745,7 @@ dependencies = [ "sha2 0.10.6", "stun", "thiserror", - "time 0.3.17", + "time 0.3.20", "tokio", "turn", "url", @@ -7152,22 +7777,22 @@ dependencies = [ [[package]] name = "webrtc-dtls" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7021987ae0a2ed6c8cd33f68e98e49bb6e74ffe9543310267b48a1bbe3900e5f" +checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" dependencies = [ "aes 0.6.0", - "aes-gcm 0.8.0", + "aes-gcm 0.10.1", "async-trait", "bincode", "block-modes 0.7.0", "byteorder", "ccm", "curve25519-dalek 3.2.0", - "der-parser 8.1.0", + "der-parser 8.2.0", "elliptic-curve", "hkdf", - "hmac 0.10.1", + "hmac 0.12.1", "log", "oid-registry 0.6.1", "p256", @@ -7179,8 +7804,8 @@ dependencies = [ "rustls 0.19.1", "sec1", "serde", - "sha-1", - "sha2 0.9.9", + "sha1", + "sha2 0.10.6", "signature", "subtle", "thiserror", @@ -7193,9 +7818,9 @@ dependencies = [ [[package]] name = "webrtc-ice" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494483fbb2f5492620871fdc78b084aed8807377f6e3fe88b2e49f0a9c9c41d7" +checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80" dependencies = [ "arc-swap", "async-trait", @@ -7292,7 +7917,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "cc", "ipnet", @@ -7306,26 +7931,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - -[[package]] -name = "which" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" -dependencies = [ - "either", - "libc", - "once_cell", -] - [[package]] name = "widestring" version = "0.5.1" @@ -7378,15 +7983,20 @@ dependencies = [ [[package]] name = "windows" -version = "0.39.0" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows_aarch64_msvc 0.39.0", - "windows_i686_gnu 0.39.0", - "windows_i686_msvc 0.39.0", - "windows_x86_64_gnu 0.39.0", - "windows_x86_64_msvc 0.39.0", + "windows-targets 0.48.0", ] [[package]] @@ -7395,20 +8005,74 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", + "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", +] + +[[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.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", +] + +[[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", +] + +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" @@ -7418,15 +8082,15 @@ checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_aarch64_msvc" -version = "0.39.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" @@ -7436,15 +8100,15 @@ checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_gnu" -version = "0.39.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" @@ -7454,15 +8118,15 @@ checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_i686_msvc" -version = "0.39.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" @@ -7472,21 +8136,27 @@ checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_gnu" -version = "0.39.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" @@ -7496,15 +8166,15 @@ checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "windows_x86_64_msvc" -version = "0.39.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winreg" @@ -7559,7 +8229,7 @@ dependencies = [ "ring", "rusticata-macros", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] @@ -7568,16 +8238,16 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", "base64 0.13.1", "data-encoding", - "der-parser 8.1.0", + "der-parser 8.2.0", "lazy_static", "nom 7.1.3", "oid-registry 0.6.1", "rusticata-macros", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] @@ -7608,30 +8278,29 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "yasna" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aed2e7a52e3744ab4d0c05c20aa065258e84c49fd4226f5191b2ed29712710b4" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.17", + "time 0.3.20", ] [[package]] name = "zeroize" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.3.3" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn", - "synstructure", + "syn 2.0.13", ] diff --git a/Cargo.toml b/Cargo.toml index 197c967b..0e095968 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,13 +21,14 @@ bincode = "1.3" bs58 = "0.4" cached = "0.40" derive_builder = "0.11" +either = "1.8" futures = { default-features = false, version = "0.3", features = ["alloc", "std"] } hex = "0.4" hyper = "0.14" # Prometheus server iri-string = "0.5" lazy_static = "1.4.0" libipld = { version = "0.14", default-features = false, features = ["dag-cbor", "dag-json", "derive", "serde-codec"]} -libp2p = { default-features = false, features = ["tcp", "mplex", "noise", "ping", "yamux", "dns", "tokio"], version = "0.51.0", git = "https://github.com/kckeiks/rust-libp2p/", branch = "use-quick-protobuf" } +libp2p = { default-features = false, features = ["autonat", "websocket", "wasm-ext", "gossipsub", "identify", "kad", "tcp", "mplex", "noise", "ping", "yamux", "dns", "tokio", "relay", "dcutr", "macros"], version = "0.51.1" } opentelemetry = { version = "0.17.0", features = ["rt-tokio"] } opentelemetry-jaeger = { version = "0.16.0", features = ["rt-tokio", "reqwest_collector_client"] } pin-project = "1" @@ -58,7 +59,6 @@ percent-encoding = "2.1" path = "lib/" [workspace] - members = [ "lib", "sdk-wasm", diff --git a/Dockerfile b/Dockerfile index 2da5fadc..1d3ddad0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,7 @@ COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/kepler /usr/lo USER kepler COPY ./kepler.toml ./ ENV ROCKET_ADDRESS=0.0.0.0 +ENV KEPLER_RELAY_ADDRESSES=[\"/ip4/0.0.0.0/tcp/8081\"] EXPOSE 8000 EXPOSE 8001 EXPOSE 8081 diff --git a/README.md b/README.md index 7997bdca..47a19a86 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,15 @@ Kepler instances are configured by the [kepler.toml](kepler.toml) configuration The following common options are available: -| Option | env var | description | -|:---------------------|:----------------------------|:---------------------------------------------------------------| -| log_level | KEPLER_LOG_LEVEL | Set the level of logging output, options are "normal", "debug" | -| address | KEPLER_ADDRESS | Set the listening address of the kepler instance | -| port | KEPLER_PORT | Set the listening TCP port for the kepler instance | -| storage.blocks.type | KEPLER_STORAGE_BLOCKS_TYPE | Set the mode of block storage, options are "Local" and "S3" | -| storage.indexes.type | KEPLER_STORAGE_INDEXES_TYPE | Set the type of the index store, options are "Local" and "DynamoDB" | -| orbits.allowlist | KEPLER_ORBITS_ALLOWLIST | Set the URL of an allowlist service for gating the creation of Orbit Peers | +| Option | env var | description | +|:---------------------|:----------------------------|:---------------------------------------------------------------------------| +| log_level | KEPLER_LOG_LEVEL | Set the level of logging output, options are "normal", "debug" | +| address | KEPLER_ADDRESS | Set the listening address of the kepler instance | +| port | KEPLER_PORT | Set the listening TCP port for the kepler instance | +| storage.blocks.type | KEPLER_STORAGE_BLOCKS_TYPE | Set the mode of block storage, options are "Local" and "S3" | +| storage.indexes.type | KEPLER_STORAGE_INDEXES_TYPE | Set the type of the index store, options are "Local" and "DynamoDB" | +| orbits.allowlist | KEPLER_ORBITS_ALLOWLIST | Set the URL of an allowlist service for gating the creation of Orbit Peers | +| relay.addresses | KEPLER_RELAY_ADDRESSES | Set the listening multiaddresses for the relay node | ### Storage Config diff --git a/kepler.toml b/kepler.toml index b4104af3..65fef329 100644 --- a/kepler.toml +++ b/kepler.toml @@ -17,3 +17,6 @@ [global.orbits] ## Orbit allow list api endpoint # allowlist = "http://localhost:10000" + +[global.relay] +# addresses = ["/ip4/127.0.0.1/tcp/8081"] diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 5a5194ac..34ad75c0 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -30,7 +30,7 @@ uuid = { version = "1", features = ["v4", "js"] } uuid = { version = "1", features = ["v4"] } [dependencies.ssi] -version = "0.5" +version = "0.6" default-features = false features = ["ed25519", "rsa", "secp256k1"] diff --git a/src/auth_guards.rs b/src/auth_guards.rs index 40b7d232..ffc92d01 100644 --- a/src/auth_guards.rs +++ b/src/auth_guards.rs @@ -2,7 +2,7 @@ use crate::authorization::{Delegation, Invocation, Verifiable}; use crate::capabilities::store::{InvokeError, ToBlock, Updates}; use crate::config; use crate::orbit::{create_orbit, load_orbit, Orbit}; -use crate::relay::RelayNode; +use crate::p2p::relay::RelayNode; use crate::routes::Metadata; use crate::BlockStores; use anyhow::Result; @@ -12,8 +12,9 @@ use kepler_lib::{ resource::{OrbitId, ResourceId}, }; use libp2p::{ - core::{Multiaddr, PeerId}, - identity::ed25519::Keypair as Ed25519Keypair, + core::{multiaddr::multiaddr, Multiaddr}, + identity::Keypair, + PeerId, }; use rocket::{ futures::future::try_join_all, @@ -75,14 +76,16 @@ pub fn check_orbit_and_service( } fn get_state(req: &Request<'_>) -> Result<(config::Config, (PeerId, Multiaddr))> { + let config = req + .rocket() + .state::() + .cloned() + .ok_or_else(|| anyhow!("Could not retrieve config"))?; Ok(( - req.rocket() - .state::() - .cloned() - .ok_or_else(|| anyhow!("Could not retrieve config"))?, + config, req.rocket() .state::() - .map(|r| (r.id, r.internal())) + .map(|r| (*r.id(), multiaddr!(Memory(1u8)))) .ok_or_else(|| anyhow!("Could not retrieve relay node information"))?, )) } @@ -153,17 +156,15 @@ impl<'l> FromRequest<'l> for DelegateAuthWrapper { .await, ) { (Some(p), Ok(None)) => { - let keys = match req - .rocket() - .state::>>() - { - Some(k) => k, - _ => { - return Err(internal_server_error(anyhow!( - "could not retrieve open key set" - ))) - } - }; + let keys = + match req.rocket().state::>>() { + Some(k) => k, + _ => { + return Err(internal_server_error(anyhow!( + "could not retrieve open key set" + ))) + } + }; if let Err(e) = token .verify( diff --git a/src/authorization.rs b/src/authorization.rs index 1097052b..43d27e00 100644 --- a/src/authorization.rs +++ b/src/authorization.rs @@ -514,7 +514,7 @@ mod test { }, }; - async fn gen( + async fn _gen( iss: &JWK, aud: String, caps: Vec, @@ -530,10 +530,10 @@ mod test { .await .1 .unwrap(), - gen_ucan((iss, did), aud, caps, exp, prf).await, + _gen_ucan((iss, did), aud, caps, exp, prf).await, ) } - async fn gen_ucan( + async fn _gen_ucan( iss: (&JWK, String), audience: String, attenuation: Vec, diff --git a/src/cas.rs b/src/cas.rs deleted file mode 100644 index 437be14d..00000000 --- a/src/cas.rs +++ /dev/null @@ -1,31 +0,0 @@ -use anyhow::Result; -use kepler_lib::libipld::cid::Cid; -use rocket::{ - form::{DataField, FromFormField}, - request::FromParam, -}; -use std::str::FromStr; - -#[derive(PartialEq, Eq, Hash, PartialOrd, Ord)] -pub struct CidWrap(pub Cid); - -// Orphan rule requires a wrapper type for this :( -impl<'a> FromParam<'a> for CidWrap { - type Error = anyhow::Error; - fn from_param(param: &'a str) -> Result { - Ok(CidWrap(Cid::from_str(param)?)) - } -} - -#[rocket::async_trait] -impl<'r> FromFormField<'r> for CidWrap { - async fn from_data(field: DataField<'r, '_>) -> rocket::form::Result<'r, Self> { - Ok(CidWrap( - field - .name - .source() - .parse() - .map_err(|_| field.unexpected())?, - )) - } -} diff --git a/src/config.rs b/src/config.rs index c02f32db..f33b17d3 100644 --- a/src/config.rs +++ b/src/config.rs @@ -3,6 +3,7 @@ use crate::{ storage::{file_system::FileSystemConfig, s3::S3BlockConfig}, BlockConfig, }; +use libp2p::{build_multiaddr, Multiaddr}; use rocket::http::hyper::Uri; use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DisplayFromStr, FromInto}; @@ -81,8 +82,7 @@ pub struct DynamoStorage { #[derive(Serialize, Deserialize, Debug, Clone, Hash, PartialEq, Eq)] pub struct Relay { - pub address: String, - pub port: u16, + pub addresses: Vec, } #[derive(Serialize, Deserialize, Debug, Clone, Hash, PartialEq, Eq)] @@ -122,8 +122,7 @@ impl Default for LocalIndexStorage { impl Default for Relay { fn default() -> Self { Self { - address: "127.0.0.1".into(), - port: 8081, + addresses: vec![build_multiaddr!(Ip4([127, 0, 0, 1]), Tcp(8081u16))], } } } diff --git a/src/lib.rs b/src/lib.rs index 2a12f395..fe3322cc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,26 +14,23 @@ pub mod allow_list; pub mod auth_guards; pub mod authorization; pub mod capabilities; -pub mod cas; pub mod config; pub mod indexes; pub mod kv; pub mod manifest; pub mod orbit; +pub mod p2p; pub mod prometheus; -pub mod relay; pub mod routes; pub mod storage; mod tracing; pub mod transport; use config::{BlockStorage, Config}; -use libp2p::{ - identity::{ed25519::Keypair as Ed25519Keypair, Keypair}, - PeerId, -}; +use libp2p::{build_multiaddr, identity::Keypair, PeerId}; use orbit::ProviderUtils; -use relay::RelayNode; +use p2p::relay::Config as RelayConfig; +use p2p::transport::{Both, MemoryConfig, TcpConfig}; use routes::{delegate, invoke, open_host_key, relay_addr, util_routes::*}; use std::{collections::HashMap, sync::RwLock}; use storage::{ @@ -76,9 +73,22 @@ pub async fn app(config: &Figment) -> Result> { tracing::tracing_try_init(&kepler_config.log); storage::KV::healthcheck(kepler_config.storage.indexes.clone()).await?; - let kp = kepler_config.storage.blocks.relay_key_pair().await?; - let relay_node = RelayNode::new(kepler_config.relay.port, Keypair::Ed25519(kp)).await?; + let mut relay_node = RelayConfig::default().launch( + kepler_config.storage.blocks.relay_key_pair().await?, + Both::::default(), + )?; + + relay_node + .listen_on( + kepler_config + .relay + .addresses + .iter() + .cloned() + .chain([build_multiaddr!(Memory(1u64))]), + ) + .await?; let routes = routes![ healthcheck, @@ -96,7 +106,7 @@ pub async fn app(config: &Figment) -> Result> { header_name: kepler_config.log.tracing.traceheader, }) .manage(relay_node) - .manage(RwLock::new(HashMap::::new())); + .manage(RwLock::new(HashMap::::new())); if kepler_config.cors { Ok(rocket.attach(AdHoc::on_response("CORS", |_, resp| { diff --git a/src/orbit.rs b/src/orbit.rs index ece9934d..940483d6 100644 --- a/src/orbit.rs +++ b/src/orbit.rs @@ -13,11 +13,7 @@ use kepler_lib::libipld::cid::{ Cid, }; use kepler_lib::resource::OrbitId; -use libp2p::{ - core::Multiaddr, - identity::{ed25519::Keypair as Ed25519Keypair, PublicKey}, - PeerId, -}; +use libp2p::{core::Multiaddr, identity::Keypair, PeerId}; use rocket::tokio::task::JoinHandle; use cached::proc_macro::cached; @@ -56,7 +52,7 @@ pub struct Orbit { #[derive(Clone, Debug, Builder)] pub struct OrbitPeerConfig { #[builder(setter(into))] - identity: Ed25519Keypair, + identity: Keypair, #[builder(setter(into))] manifest: Manifest, #[builder(setter(into, strip_option), default)] @@ -78,7 +74,7 @@ where B::Error: 'static, { let id = config.manifest.id().get_cid(); - let _local_peer_id = PeerId::from_public_key(&PublicKey::Ed25519(config.identity.public())); + let _local_peer_id = PeerId::from_public_key(&config.identity.public()); let _relay = &config.relay; let blocks = match config.blocks.open(config.manifest.id()).await? { @@ -106,7 +102,7 @@ where B::Error: 'static, { let id = config.manifest.id().get_cid(); - let _local_peer_id = PeerId::from_public_key(&PublicKey::Ed25519(config.identity.public())); + let _local_peer_id = PeerId::from_public_key(&config.identity.public()); let _relay = &config.relay; let blocks = config.blocks.create(config.manifest.id()).await?; @@ -129,9 +125,9 @@ where pub trait ProviderUtils { type Error: StdError; async fn exists(&self, orbit: &OrbitId) -> Result; - async fn relay_key_pair(&self) -> Result; - async fn key_pair(&self, orbit: &OrbitId) -> Result, Self::Error>; - async fn setup_orbit(&self, orbit: &OrbitId, key: &Ed25519Keypair) -> Result<(), Self::Error>; + async fn relay_key_pair(&self) -> Result; + async fn key_pair(&self, orbit: &OrbitId) -> Result, Self::Error>; + async fn setup_orbit(&self, orbit: &OrbitId, key: &Keypair) -> Result<(), Self::Error>; } // Using Option to distinguish when the orbit already exists from a hard error @@ -140,7 +136,7 @@ pub async fn create_orbit( store_config: &BlockConfig, index_config: &config::IndexStorage, relay: (PeerId, Multiaddr), - kp: Ed25519Keypair, + kp: Keypair, ) -> Result>> { match Manifest::resolve_dyn(id, None).await? { Some(_) => {} @@ -254,7 +250,7 @@ mod tests { Ok(( Orbit::create( &OrbitPeerConfigBuilder::::default() - .identity(Ed25519Keypair::generate()) + .identity(Keypair::generate_ed25519()) .manifest(md) .blocks(BlockConfig::B(FileSystemConfig::new(dir.path()))) .index(IndexStorage::Local(LocalIndexStorage { @@ -284,6 +280,6 @@ mod tests { let md = Manifest::resolve_dyn(&oid, None).await.unwrap().unwrap(); - let (orbit, dir) = op(md).await.unwrap(); + let (_, _) = op(md).await.unwrap(); } } diff --git a/src/p2p/behaviour/builder.rs b/src/p2p/behaviour/builder.rs new file mode 100644 index 00000000..83d59964 --- /dev/null +++ b/src/p2p/behaviour/builder.rs @@ -0,0 +1,186 @@ +use crate::p2p::{ + behaviour::{poll_swarm, BaseBehaviour, Behaviour}, + transport::{build_transport, IntoTransport}, + IdentifyConfig, +}; +use futures::io::{AsyncRead, AsyncWrite}; +use libp2p::{ + autonat::{Behaviour as AutoNat, Config as AutoNatConfig}, + core::Transport, + dcutr::Behaviour as Dcutr, + gossipsub::{ + Behaviour as Gossipsub, Config as GossipsubConfig, ConfigBuilder as GossipsubConfigBuilder, + MessageAuthenticity, ValidationMode, + }, + identify::Behaviour as Identify, + identity::{Keypair, PeerId}, + kad::{ + record::store::{MemoryStore, MemoryStoreConfig, RecordStore}, + Kademlia, KademliaConfig, + }, + noise::NoiseError, + ping::{Behaviour as Ping, Config as PingConfig}, + relay::client::{new, Behaviour as Client}, + swarm::SwarmBuilder, +}; +use std::time::Duration; +use thiserror::Error; + +#[derive(Debug, Clone, Default)] +pub struct BehaviourConfig { + identify: IdentifyConfig, + ping: PingConfig, + gossipsub: GossipsubConfig, + kademlia: KademliaConfig, + kademlia_store: KSC, + autonat: AutoNatConfig, + relay: bool, + transport_timeout: Duration, +} + +impl BehaviourConfig { + pub fn new(ksc: impl Into) -> Self { + Self { + identify: Default::default(), + ping: Default::default(), + gossipsub: Default::default(), + kademlia: Default::default(), + kademlia_store: ksc.into(), + autonat: Default::default(), + relay: Default::default(), + transport_timeout: Duration::from_secs(20), + } + } + pub fn identify(&mut self, i: impl Into) -> &mut Self { + self.identify = i.into(); + self + } + pub fn ping(&mut self, i: impl Into) -> &mut Self { + self.ping = i.into(); + self + } + pub fn gossipsub(&mut self, i: impl Into) -> &mut Self { + self.gossipsub = i.into(); + self + } + pub fn kademlia(&mut self, i: impl Into) -> &mut Self { + self.kademlia = i.into(); + self + } + pub fn kademlia_store(&mut self, i: impl Into) -> &mut Self { + self.kademlia_store = i.into(); + self + } + pub fn autonat(&mut self, i: impl Into) -> &mut Self { + self.autonat = i.into(); + self + } + pub fn relay(&mut self, i: impl Into) -> &mut Self { + self.relay = i.into(); + self + } + fn build( + self, + keypair: Keypair, + relay: Option, + ) -> Result, OrbitBehaviourBuildError> + where + KSC: RecordStoreConfig, + KS: RecordStore + Send + 'static, + { + let peer_id = keypair.public().to_peer_id(); + Ok(Behaviour { + base: BaseBehaviour { + identify: Identify::new(self.identify.into_config(keypair.public())), + ping: Ping::new(self.ping), + gossipsub: Gossipsub::new( + MessageAuthenticity::Signed(keypair), + GossipsubConfigBuilder::from(self.gossipsub) + // always ensure validation + .validation_mode(ValidationMode::Strict) + .build() + .map_err(OrbitBehaviourBuildError::Gossipsub)?, + ) + .map_err(OrbitBehaviourBuildError::Gossipsub)?, + relay: relay.into(), + kademlia: Kademlia::with_config( + peer_id, + self.kademlia_store.init(peer_id), + self.kademlia, + ), + dcutr: Dcutr::new(peer_id), + autonat: AutoNat::new(peer_id, self.autonat), + }, + }) + } + + pub fn launch(self, keypair: Keypair, transport: T) -> Result<(), OrbitLaunchError> + where + T: IntoTransport, + T::T: 'static + Send + Unpin, + T::Error: 'static + std::error::Error + Send + Sync, + ::Output: 'static + AsyncRead + AsyncWrite + Unpin + Send, + ::Error: 'static + Send + Sync, + ::Dial: Send, + ::ListenerUpgrade: Send, + KS: RecordStore + Send + 'static, + KSC: RecordStoreConfig, + { + let local_public_key = keypair.public(); + let id = local_public_key.to_peer_id(); + let transport = transport + .into_transport() + .map_err(OrbitLaunchError::TransportConfig)?; + let (transport, behaviour) = if self.relay { + let (t, b) = new(id); + ( + build_transport(transport.or_transport(t), self.transport_timeout, &keypair)?, + self.build(keypair, Some(b))?, + ) + } else { + ( + build_transport(transport, self.transport_timeout, &keypair)?, + self.build(keypair, None)?, + ) + }; + + let swarm = SwarmBuilder::with_tokio_executor(transport, behaviour, id).build(); + tokio::spawn(poll_swarm(swarm)); + + Ok(()) + } +} + +#[derive(Error, Debug)] +pub enum OrbitBehaviourBuildError { + #[error("{0}")] + Gossipsub(&'static str), +} + +#[derive(Error, Debug)] +pub enum OrbitLaunchError +where + T: IntoTransport, +{ + #[error(transparent)] + Config(#[from] OrbitBehaviourBuildError), + #[error(transparent)] + Transport(::Error), + #[error(transparent)] + TransportConfig(T::Error), + #[error(transparent)] + Noise(#[from] NoiseError), +} + +pub trait RecordStoreConfig +where + S: RecordStore + Send + 'static, +{ + fn init(self, id: PeerId) -> S; +} + +impl RecordStoreConfig for MemoryStoreConfig { + fn init(self, id: PeerId) -> MemoryStore { + MemoryStore::with_config(id, self) + } +} diff --git a/src/p2p/behaviour/mod.rs b/src/p2p/behaviour/mod.rs new file mode 100644 index 00000000..7c4ee823 --- /dev/null +++ b/src/p2p/behaviour/mod.rs @@ -0,0 +1,45 @@ +use libp2p::{ + autonat::Behaviour as AutoNat, + dcutr::Behaviour as Dcutr, + gossipsub::Behaviour as GossipSub, + identify::Behaviour as Identify, + kad::{record::store::RecordStore, Kademlia}, + ping::Behaviour as Ping, + relay::client::Behaviour as Client, + swarm::{behaviour::toggle::Toggle, NetworkBehaviour, Swarm}, +}; + +mod builder; + +pub use builder::{BehaviourConfig, OrbitBehaviourBuildError}; + +// TODO impl network behaviour +// this is temporary as a checkpoint +#[derive(NetworkBehaviour)] +pub struct Behaviour +where + KS: RecordStore + Send + 'static, +{ + base: BaseBehaviour, +} + +#[derive(NetworkBehaviour)] +pub struct BaseBehaviour +where + KS: RecordStore + Send + 'static, +{ + identify: Identify, + ping: Ping, + gossipsub: GossipSub, + relay: Toggle, + kademlia: Kademlia, + dcutr: Dcutr, + autonat: AutoNat, +} + +async fn poll_swarm(_swarm: Swarm>) -> Result<(), ()> +where + KS: RecordStore + Send + 'static, +{ + Ok(()) +} diff --git a/src/p2p/mod.rs b/src/p2p/mod.rs new file mode 100644 index 00000000..5149e47c --- /dev/null +++ b/src/p2p/mod.rs @@ -0,0 +1,75 @@ +use core::time::Duration; + +use libp2p::{identify::Config as OIdentifyConfig, identity::PublicKey}; + +pub mod behaviour; +pub mod relay; +pub mod transport; + +pub const PROTOCOL_VERSION: &str = "kepler/0.1.0"; + +#[derive(Debug, Clone, Hash, PartialEq, Eq)] +pub struct IdentifyConfig { + protocol_version: String, + initial_delay: Duration, + interval: Duration, + push_listen_addr_updates: bool, + cache_size: usize, +} + +impl IdentifyConfig { + pub fn protocol_version(&mut self, i: impl Into) -> &mut Self { + self.protocol_version = i.into(); + self + } + pub fn initial_delay(&mut self, i: impl Into) -> &mut Self { + self.initial_delay = i.into(); + self + } + pub fn interval(&mut self, i: impl Into) -> &mut Self { + self.interval = i.into(); + self + } + pub fn push_listen_addr_updates(&mut self, i: impl Into) -> &mut Self { + self.push_listen_addr_updates = i.into(); + self + } + pub fn cache_size(&mut self, i: impl Into) -> &mut Self { + self.cache_size = i.into(); + self + } +} + +impl Default for IdentifyConfig { + fn default() -> Self { + Self { + protocol_version: PROTOCOL_VERSION.into(), + initial_delay: Duration::from_millis(500), + interval: Duration::from_secs(300), + push_listen_addr_updates: false, + cache_size: 0, + } + } +} + +impl IdentifyConfig { + fn into_config(self, key: PublicKey) -> OIdentifyConfig { + OIdentifyConfig::new(self.protocol_version, key) + .with_initial_delay(self.initial_delay) + .with_interval(self.interval) + .with_push_listen_addr_updates(self.push_listen_addr_updates) + .with_cache_size(self.cache_size) + } +} + +impl From for IdentifyConfig { + fn from(c: OIdentifyConfig) -> Self { + IdentifyConfig { + protocol_version: c.protocol_version, + initial_delay: c.initial_delay, + interval: c.interval, + push_listen_addr_updates: c.push_listen_addr_updates, + cache_size: c.cache_size, + } + } +} diff --git a/src/p2p/relay.rs b/src/p2p/relay.rs new file mode 100644 index 00000000..841c07d7 --- /dev/null +++ b/src/p2p/relay.rs @@ -0,0 +1,321 @@ +use crate::p2p::{ + transport::{build_transport, IntoTransport}, + IdentifyConfig, +}; +use futures::{ + channel::{mpsc, oneshot}, + future::{select, Either}, + io::{AsyncRead, AsyncWrite}, + sink::SinkExt, + stream::StreamExt, +}; +use libp2p::{ + autonat::{Behaviour as AutoNat, Config as AutoNatConfig}, + core::{identity::Keypair, Multiaddr, Transport}, + identify::Behaviour as Identify, + identity::PublicKey, + noise, + ping::{Behaviour as Ping, Config as PingConfig}, + relay::{Behaviour as Relay, Config as RelayConfig}, + swarm::{NetworkBehaviour, Swarm, SwarmBuilder}, + PeerId, +}; + +#[derive(Clone, Debug)] +pub struct RelayNode { + id: PeerId, + sender: mpsc::Sender, +} + +#[derive(NetworkBehaviour)] +pub struct Behaviour { + identify: Identify, + ping: Ping, + relay: Relay, + autonat: AutoNat, +} + +#[derive(thiserror::Error, Debug)] +pub enum Error { + #[error("failed to listen on multiaddress: {0}")] + Listen(Multiaddr), + #[error("failed to dial multiaddress: {0}")] + Dial(Multiaddr), + #[error("failed to send message: {0}")] + SendError(#[from] mpsc::SendError), + #[error("failed to recieve behaviour response: {0}")] + RecieveError(#[from] oneshot::Canceled), + #[error("failed to open listener: {0}")] + TransportError(#[from] libp2p::TransportError), +} + +#[derive(Debug)] +enum Message { + GetAddresses(oneshot::Sender>), + ListenOn(Vec, oneshot::Sender>), + Dial(Multiaddr, oneshot::Sender>), + GetConnectedPeers(oneshot::Sender>), +} + +impl RelayNode { + pub fn id(&self) -> &PeerId { + &self.id + } + pub async fn get_addresses(&mut self) -> Result, Error> { + let (s, r) = oneshot::channel(); + self.sender.send(Message::GetAddresses(s)).await?; + Ok(r.await?) + } + + pub async fn listen_on( + &mut self, + addr: impl IntoIterator, + ) -> Result<(), Error> { + let (s, r) = oneshot::channel(); + self.sender + .send(Message::ListenOn(addr.into_iter().collect(), s)) + .await?; + r.await? + } + + pub async fn dial(&mut self, addr: Multiaddr) -> Result<(), Error> { + let (s, r) = oneshot::channel(); + self.sender.send(Message::Dial(addr, s)).await?; + r.await? + } + + pub async fn connected_peers(&mut self) -> Result, Error> { + let (s, r) = oneshot::channel(); + self.sender.send(Message::GetConnectedPeers(s)).await?; + Ok(r.await?) + } +} + +#[derive(Debug)] +pub struct Config { + identify: IdentifyConfig, + ping: PingConfig, + relay: RelayConfig, + autonat: AutoNatConfig, + channel_size: usize, + transport_timeout: std::time::Duration, +} + +impl Default for Config { + fn default() -> Self { + Self { + identify: IdentifyConfig::default(), + ping: PingConfig::default(), + relay: RelayConfig::default(), + autonat: AutoNatConfig::default(), + channel_size: 100, + transport_timeout: std::time::Duration::from_secs(20), + } + } +} + +impl Config { + pub fn identify(&mut self, i: impl Into) -> &mut Self { + self.identify = i.into(); + self + } + pub fn ping(&mut self, i: impl Into) -> &mut Self { + self.ping = i.into(); + self + } + pub fn relay(&mut self, i: impl Into) -> &mut Self { + self.relay = i.into(); + self + } + pub fn autonat(&mut self, i: impl Into) -> &mut Self { + self.autonat = i.into(); + self + } + pub fn channel_size(&mut self, i: impl Into) -> &mut Self { + self.channel_size = i.into(); + self + } + pub fn transport_timeout(&mut self, i: impl Into) -> &mut Self { + self.transport_timeout = i.into(); + self + } + + fn build(self, pubkey: PublicKey) -> Behaviour { + let peer_id = pubkey.to_peer_id(); + Behaviour { + identify: Identify::new(self.identify.into_config(pubkey)), + ping: Ping::new(self.ping), + relay: Relay::new(peer_id, self.relay), + autonat: AutoNat::new(peer_id, self.autonat), + } + } + + pub fn launch(self, keypair: Keypair, transport: T) -> Result> + where + T: IntoTransport, + T::T: 'static + Send + Unpin, + T::Error: 'static + std::error::Error + Send + Sync, + ::Output: 'static + AsyncRead + AsyncWrite + Unpin + Send, + ::Error: 'static + Send + Sync, + ::Dial: Send, + ::ListenerUpgrade: Send, + { + let local_public_key = keypair.public(); + let id = local_public_key.to_peer_id(); + let (sender, reciever) = mpsc::channel(self.channel_size); + + let swarm = SwarmBuilder::with_tokio_executor( + build_transport( + transport + .into_transport() + .map_err(BuildError::TransportConfig)?, + self.transport_timeout, + &keypair, + )?, + self.build(local_public_key), + id, + ) + .build(); + + tokio::spawn(poll_swarm(swarm, reciever)); + + Ok(RelayNode { id, sender }) + } +} + +#[derive(thiserror::Error, Debug)] +pub enum BuildError +where + T: IntoTransport, +{ + #[error(transparent)] + TransportConfig(T::Error), + #[error(transparent)] + Noise(#[from] noise::NoiseError), +} + +#[derive(thiserror::Error, Debug)] +pub enum SwarmError { + #[error("failed to send response via oneshot")] + SendError, + #[error("failed to dial multiaddress: {0}")] + DialError(#[from] libp2p::swarm::DialError), +} + +async fn poll_swarm( + mut swarm: Swarm, + mut reciever: mpsc::Receiver, +) -> Result<(), SwarmError> { + loop { + match select(reciever.next(), swarm.next()).await { + // if the swarm or the channel are closed, close the relay + Either::Right((None, _)) | Either::Left((None, _)) => { + break; + } + // process command + Either::Left((Some(e), _)) => match e { + Message::ListenOn(a, s) => { + // try listen on each given address + match a.into_iter().try_fold(Vec::new(), |mut listeners, addr| { + match swarm.listen_on(addr) { + Ok(l) => { + listeners.push(l); + Ok(listeners) + } + Err(e) => Err((e, listeners)), + } + }) { + Ok(_) => s.send(Ok(())).map_err(|_| SwarmError::SendError)?, + // if one fails, roll back all of them + Err((e, listeners)) => { + for l in listeners { + swarm.remove_listener(l); + } + s.send(Err(e.into())).map_err(|_| SwarmError::SendError)? + } + }; + } + Message::GetAddresses(s) => s + .send(swarm.listeners().cloned().collect()) + .map_err(|_| SwarmError::SendError)?, + Message::Dial(addr, s) => { + swarm.dial(addr)?; + s.send(Ok(())).map_err(|_| SwarmError::SendError)? + } + Message::GetConnectedPeers(s) => s + .send(swarm.connected_peers().map(|p| p.to_owned()).collect()) + .map_err(|_| SwarmError::SendError)?, + }, + Either::Right((Some(_), _)) => { + // process swarm event + } + } + } + Result::Ok(()) +} + +#[cfg(test)] +mod test { + use super::*; + use crate::p2p::transport::{Both, MemoryConfig, TcpConfig}; + use libp2p::build_multiaddr; + + #[test] + async fn basic_test() { + let addr = build_multiaddr!(Memory(1u8)); + + let mut relay = Config::default() + .launch(Keypair::generate_ed25519(), MemoryConfig) + .unwrap(); + + relay.listen_on([addr.clone()]).await.unwrap(); + let listened = relay.get_addresses().await.unwrap(); + + assert_eq!(listened, vec![addr]); + } + + #[test] + async fn can_relay() { + let mut alice = Config::default() + .launch(Keypair::generate_ed25519(), MemoryConfig) + .unwrap(); + + let mut bob = Config::default() + .launch( + Keypair::generate_ed25519(), + Both::::default(), + ) + .unwrap(); + + let mut charles = Config::default() + .launch( + Keypair::generate_ed25519(), + Both::::default(), + ) + .unwrap(); + + alice + .listen_on([build_multiaddr!(Memory(0u8))]) + .await + .unwrap(); + + bob.listen_on([build_multiaddr!(Memory(0u8))]) + .await + .unwrap(); + + charles + .listen_on([build_multiaddr!(Tcp(0u8))]) + .await + .unwrap(); + + let alice_addrs = alice.get_addresses().await.unwrap(); + let bob_addrs = bob.get_addresses().await.unwrap(); + let charles_addrs = charles.get_addresses().await.unwrap(); + + let charles_via_bob = bob_addrs[0].clone().with(Protocol::P2p(bob.id().into())); + + let charles_via_bob = charles_addrs[0].with(Protocol::P2p(bob.id().into())); + + alice.dial().await.unwrap(); + } +} diff --git a/src/p2p/transport.rs b/src/p2p/transport.rs new file mode 100644 index 00000000..9246f397 --- /dev/null +++ b/src/p2p/transport.rs @@ -0,0 +1,258 @@ +use crate::storage::either::EitherError; +use futures::io::{AsyncRead, AsyncWrite}; +use libp2p::{ + core::{ + muxing::StreamMuxerBox, + transport::{dummy::DummyTransport, Boxed, MemoryTransport, OrTransport, Transport}, + upgrade, + }, + dns::{ResolverConfig, ResolverOpts, TokioDnsConfig as DnsTransport}, + identity::Keypair, + mplex, + noise::{NoiseAuthenticated, NoiseError}, + tcp::tokio::Transport as TcpTransport, + wasm_ext::ExtTransport, + websocket::{tls::Config as WsTlsConfig, WsConfig as WsTransport}, + yamux, PeerId, +}; +use std::io::Error as IoError; + +pub fn build_transport( + t: T, + timeout: std::time::Duration, + keypair: &Keypair, +) -> Result, NoiseError> +where + T: 'static + Transport + Send + Unpin, + T::Output: 'static + AsyncRead + AsyncWrite + Unpin + Send, + T::Dial: Send, + T::Error: 'static + Send + Sync, + T::ListenerUpgrade: Send, +{ + Ok(t.upgrade(upgrade::Version::V1) + // TODO replace with AWAKE protcol (or similar) + .authenticate(NoiseAuthenticated::xx(keypair)?) + .multiplex(upgrade::SelectUpgrade::new( + yamux::YamuxConfig::default(), + mplex::MplexConfig::default(), + )) + .timeout(timeout) + .boxed()) +} + +pub trait IntoTransport { + type T: Transport; + type Error: std::error::Error; + fn into_transport(self) -> Result; + fn and(self, other: O) -> Both + where + Self: Sized, + { + Both(self, other) + } +} + +pub use libp2p::tcp::Config as TcpConfig; +pub use libp2p::wasm_ext::ffi::Transport as ExtConfig; + +#[derive(Default, Debug, Clone, Hash, PartialEq, Eq)] +pub struct MemoryConfig; + +#[derive(Default, Debug, Clone, Hash, PartialEq, Eq)] +pub struct DummyConfig; + +#[derive(Default, Debug, Clone, Hash, PartialEq, Eq)] +pub struct Both(pub A, pub B); + +impl IntoTransport for Both +where + A: IntoTransport, + B: IntoTransport, +{ + type T = OrTransport; + type Error = EitherError; + fn into_transport(self) -> Result { + Ok(OrTransport::new( + self.0.into_transport().map_err(EitherError::A)?, + self.1.into_transport().map_err(EitherError::B)?, + )) + } +} + +#[derive(Clone, Debug, Default)] +pub enum DnsResolver { + #[default] + System, + Custom(Box), +} + +#[derive(Debug, Clone, PartialEq, Eq, Default)] +pub struct CustomDnsResolver { + conf: ResolverConfig, + opts: ResolverOpts, +} + +impl CustomDnsResolver { + pub fn config(&mut self, i: impl Into) -> &mut Self { + self.conf = i.into(); + self + } + pub fn options(&mut self, i: impl Into) -> &mut Self { + self.opts = i.into(); + self + } +} + +#[derive(Debug, Clone, Default)] +pub struct DnsConfig { + resolver: DnsResolver, + base: B, +} + +impl DnsConfig { + pub fn new(i: impl Into) -> Self { + Self { + base: i.into(), + resolver: Default::default(), + } + } + pub fn resolver(&mut self, i: impl Into) -> &mut Self { + self.resolver = i.into(); + self + } + pub fn base(&mut self, i: impl Into) -> &mut Self { + self.base = i.into(); + self + } +} + +impl IntoTransport for DnsConfig +where + B: IntoTransport, + B::T: 'static + Send + Unpin, + ::Output: 'static + AsyncRead + AsyncWrite + Send + Unpin, + ::Dial: Send, + ::Error: Send, +{ + type T = DnsTransport; + type Error = EitherError; + fn into_transport(self) -> Result { + match self.resolver { + DnsResolver::System => { + DnsTransport::system(self.base.into_transport().map_err(EitherError::B)?) + .map_err(EitherError::A) + } + DnsResolver::Custom(custom) => DnsTransport::custom( + self.base.into_transport().map_err(EitherError::B)?, + custom.conf, + custom.opts, + ) + .map_err(EitherError::A), + } + } +} + +pub const WS_MAX_DATA_SIZE: usize = 256 * 1024 * 1024; + +#[derive(Debug, Clone)] +pub struct WsConfig { + base: T, + max_redirects: u8, + max_data_size: usize, + deflate: bool, + tls: WsTlsConfig, +} + +impl WsConfig { + pub fn new(b: impl Into) -> Self { + Self { + base: b.into(), + max_redirects: 0, + max_data_size: WS_MAX_DATA_SIZE, + deflate: false, + tls: WsTlsConfig::client(), + } + } + pub fn base(&mut self, i: impl Into) -> &mut Self { + self.base = i.into(); + self + } + pub fn max_redirects(&mut self, i: impl Into) -> &mut Self { + self.max_redirects = i.into(); + self + } + pub fn max_data_size(&mut self, i: impl Into) -> &mut Self { + self.max_data_size = i.into(); + self + } + pub fn deflate(&mut self, i: impl Into) -> &mut Self { + self.deflate = i.into(); + self + } + pub fn tls(&mut self, i: impl Into) -> &mut Self { + self.tls = i.into(); + self + } +} + +impl Default for WsConfig +where + T: Default, +{ + fn default() -> Self { + Self::new(T::default()) + } +} + +impl IntoTransport for WsConfig +where + B: IntoTransport, + B::T: 'static + Send + Unpin, + ::Output: 'static + AsyncRead + AsyncWrite + Send + Unpin, + ::Dial: Send, + ::Error: Send, + ::ListenerUpgrade: Send, +{ + type T = WsTransport; + type Error = B::Error; + fn into_transport(self) -> Result { + let mut ws = WsTransport::new(self.base.into_transport()?); + ws.set_max_redirects(self.max_redirects) + .set_max_data_size(self.max_data_size) + .set_tls_config(self.tls) + .use_deflate(self.deflate); + Ok(ws) + } +} + +impl IntoTransport for ExtConfig { + type T = ExtTransport; + type Error = std::convert::Infallible; + fn into_transport(self) -> Result { + Ok(Self::T::new(self)) + } +} + +impl IntoTransport for MemoryConfig { + type T = MemoryTransport; + type Error = std::convert::Infallible; + fn into_transport(self) -> Result { + Ok(Self::T::new()) + } +} + +impl IntoTransport for TcpConfig { + type T = TcpTransport; + type Error = std::convert::Infallible; + fn into_transport(self) -> Result { + Ok(Self::T::new(self)) + } +} + +impl IntoTransport for DummyConfig { + type T = DummyTransport; + type Error = std::convert::Infallible; + fn into_transport(self) -> Result { + Ok(Self::T::new()) + } +} diff --git a/src/relay.rs b/src/relay.rs deleted file mode 100644 index 26234d54..00000000 --- a/src/relay.rs +++ /dev/null @@ -1,35 +0,0 @@ -use anyhow::Result; -use libp2p::core::{identity::Keypair, multiaddr::multiaddr, Multiaddr, PeerId}; - -pub struct RelayNode { - pub port: u16, - pub id: PeerId, -} - -impl RelayNode { - pub async fn new(port: u16, keypair: Keypair) -> Result { - let local_public_key = keypair.public(); - let id = local_public_key.to_peer_id(); - - Ok(Self { port, id }) - } - - fn _internal(port: u16) -> Multiaddr { - multiaddr!(Memory(port)) - } - - pub fn internal(&self) -> Multiaddr { - Self::_internal(self.port) - } - - fn _external(port: u16) -> Multiaddr { - multiaddr!(Ip4([127, 0, 0, 1]), Tcp(port)) - } - - pub fn external(&self) -> Multiaddr { - Self::_external(self.port) - } -} - -#[cfg(test)] -pub mod test {} diff --git a/src/routes/mod.rs b/src/routes/mod.rs index 18c6840f..e8207f3a 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -4,11 +4,7 @@ use kepler_lib::{ authorization::{EncodingError, HeaderEncode}, libipld::Cid, }; -use libp2p::{ - core::PeerId, - identity::{ed25519::Keypair as Ed25519Keypair, PublicKey}, - multiaddr::Protocol, -}; +use libp2p::{identity::Keypair, multiaddr::Protocol, PeerId}; use rocket::{ data::{Data, ToByteUnit}, http::{Header, Status}, @@ -27,8 +23,9 @@ use tracing::{info_span, Instrument}; use crate::{ auth_guards::{CapAction, DelegateAuthWrapper, InvokeAuthWrapper, KVAction}, authorization::{Capability, Delegation}, + config::Config, kv::{ObjectBuilder, ReadResponse}, - relay::RelayNode, + p2p::relay::RelayNode, storage::{Content, ImmutableStore}, tracing::TracingSpan, BlockStores, @@ -92,19 +89,23 @@ pub mod util_routes { } #[get("/peer/relay")] -pub fn relay_addr(relay: &State) -> String { - relay - .external() - .with(Protocol::P2p(relay.id.into())) - .to_string() +pub fn relay_addr(relay: &State, config: &State) -> String { + config + .relay + .addresses + .iter() + .cloned() + .map(|a| a.with(Protocol::P2p(*relay.id().as_ref())).to_string()) + .collect::>() + .join(", ") } #[get("/peer/generate")] pub fn open_host_key( - s: &State>>, + s: &State>>, ) -> Result { - let keypair = Ed25519Keypair::generate(); - let id = PublicKey::Ed25519(keypair.public()).to_peer_id(); + let keypair = Keypair::generate_ed25519(); + let id = keypair.public().to_peer_id(); s.write() .map_err(|_| (Status::InternalServerError, "cant read keys"))? .insert(id, keypair); diff --git a/src/storage/either.rs b/src/storage/either.rs index 448983db..9d65f7b2 100644 --- a/src/storage/either.rs +++ b/src/storage/either.rs @@ -7,7 +7,7 @@ use kepler_lib::{ libipld::cid::multihash::{Code, Multihash}, resource::OrbitId, }; -use libp2p::identity::ed25519::Keypair as Ed25519Keypair; +use libp2p::identity::Keypair; #[derive(Debug, Clone, Hash, PartialEq, Eq)] pub enum Either { @@ -139,19 +139,19 @@ where Self::B(b) => b.exists(orbit).await.map_err(Self::Error::B), } } - async fn relay_key_pair(&self) -> Result { + async fn relay_key_pair(&self) -> Result { match self { Self::A(a) => a.relay_key_pair().await.map_err(Self::Error::A), Self::B(b) => b.relay_key_pair().await.map_err(Self::Error::B), } } - async fn key_pair(&self, orbit: &OrbitId) -> Result, Self::Error> { + async fn key_pair(&self, orbit: &OrbitId) -> Result, Self::Error> { match self { Self::A(a) => a.key_pair(orbit).await.map_err(Self::Error::A), Self::B(b) => b.key_pair(orbit).await.map_err(Self::Error::B), } } - async fn setup_orbit(&self, orbit: &OrbitId, key: &Ed25519Keypair) -> Result<(), Self::Error> { + async fn setup_orbit(&self, orbit: &OrbitId, key: &Keypair) -> Result<(), Self::Error> { match self { Self::A(a) => a.setup_orbit(orbit, key).await.map_err(Self::Error::A), Self::B(b) => b.setup_orbit(orbit, key).await.map_err(Self::Error::B), diff --git a/src/storage/file_system.rs b/src/storage/file_system.rs index f9e5b0c5..31c39a59 100644 --- a/src/storage/file_system.rs +++ b/src/storage/file_system.rs @@ -9,7 +9,7 @@ use kepler_lib::{ }, resource::OrbitId, }; -use libp2p::identity::{ed25519::Keypair as Ed25519Keypair, error::DecodingError}; +use libp2p::identity::{DecodingError, Keypair}; use serde::{Deserialize, Serialize}; use std::{ io::{Error as IoError, ErrorKind}, @@ -97,29 +97,29 @@ impl ProviderUtils for FileSystemConfig { .join("blocks") .is_dir()) } - async fn relay_key_pair(&self) -> Result { + async fn relay_key_pair(&self) -> Result { let path = self.path.join("kp"); match read(&path).await { - Ok(mut k) => Ok(Ed25519Keypair::decode(&mut k)?), + Ok(k) => Ok(Keypair::from_protobuf_encoding(&k)?), Err(e) if e.kind() == ErrorKind::NotFound => { - let k = Ed25519Keypair::generate(); - write(&path, k.encode()).await?; + let k = Keypair::generate_ed25519(); + write(&path, k.to_protobuf_encoding()?).await?; Ok(k) } Err(e) => Err(e.into()), } } - async fn key_pair(&self, orbit: &OrbitId) -> Result, Self::Error> { + async fn key_pair(&self, orbit: &OrbitId) -> Result, Self::Error> { match read(self.path.join(orbit.get_cid().to_string()).join("kp")).await { - Ok(mut k) => Ok(Some(Ed25519Keypair::decode(&mut k)?)), + Ok(k) => Ok(Some(Keypair::from_protobuf_encoding(&k)?)), Err(e) if e.kind() == ErrorKind::NotFound => Ok(None), Err(e) => Err(e.into()), } } - async fn setup_orbit(&self, orbit: &OrbitId, key: &Ed25519Keypair) -> Result<(), Self::Error> { + async fn setup_orbit(&self, orbit: &OrbitId, key: &Keypair) -> Result<(), Self::Error> { let dir = self.path.join(orbit.get_cid().to_string()); create_dir_all(&dir).await?; - write(dir.join("kp"), key.encode()).await?; + write(dir.join("kp"), key.to_protobuf_encoding()?).await?; write(dir.join("id"), orbit.to_string()).await?; Ok(()) } diff --git a/src/storage/s3.rs b/src/storage/s3.rs index a7e829db..d4374b5c 100644 --- a/src/storage/s3.rs +++ b/src/storage/s3.rs @@ -16,7 +16,7 @@ use kepler_lib::{ }, resource::OrbitId, }; -use libp2p::identity::{ed25519::Keypair as Ed25519Keypair, error::DecodingError}; +use libp2p::identity::{DecodingError, Keypair}; use rocket::{async_trait, http::hyper::Uri}; use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DisplayFromStr}; @@ -90,7 +90,7 @@ impl ProviderUtils for S3BlockConfig { async fn exists(&self, orbit: &OrbitId) -> Result { self.key_pair(orbit).await.map(|o| o.is_some()) } - async fn relay_key_pair(&self) -> Result { + async fn relay_key_pair(&self) -> Result { let client = new_client(self); match client .get_object() @@ -99,8 +99,8 @@ impl ProviderUtils for S3BlockConfig { .send() .await { - Ok(o) => Ok(Ed25519Keypair::decode( - &mut o.body.collect().await?.into_bytes().to_vec(), + Ok(o) => Ok(Keypair::from_protobuf_encoding( + &o.body.collect().await?.into_bytes(), )?), Err(SdkError::ServiceError { err: @@ -110,12 +110,12 @@ impl ProviderUtils for S3BlockConfig { }, .. }) => { - let kp = Ed25519Keypair::generate(); + let kp = Keypair::generate_ed25519(); client .put_object() .bucket(&self.bucket) .key("kp") - .body(ByteStream::new(SdkBody::from(kp.encode().to_vec()))) + .body(ByteStream::new(SdkBody::from(kp.to_protobuf_encoding()?))) .send() .await?; Ok(kp) @@ -123,7 +123,7 @@ impl ProviderUtils for S3BlockConfig { Err(e) => Err(e.into()), } } - async fn key_pair(&self, orbit: &OrbitId) -> Result, Self::Error> { + async fn key_pair(&self, orbit: &OrbitId) -> Result, Self::Error> { match new_client(self) .get_object() .bucket(&self.bucket) @@ -131,8 +131,8 @@ impl ProviderUtils for S3BlockConfig { .send() .await { - Ok(o) => Ok(Some(Ed25519Keypair::decode( - &mut o.body.collect().await?.into_bytes().to_vec(), + Ok(o) => Ok(Some(Keypair::from_protobuf_encoding( + &o.body.collect().await?.into_bytes(), )?)), Err(SdkError::ServiceError { err: @@ -145,13 +145,13 @@ impl ProviderUtils for S3BlockConfig { Err(e) => Err(e.into()), } } - async fn setup_orbit(&self, orbit: &OrbitId, key: &Ed25519Keypair) -> Result<(), Self::Error> { + async fn setup_orbit(&self, orbit: &OrbitId, key: &Keypair) -> Result<(), Self::Error> { let client = new_client(self); client .put_object() .bucket(&self.bucket) .key(format!("{}/keypair", orbit.get_cid())) - .body(ByteStream::new(SdkBody::from(key.encode().to_vec()))) + .body(ByteStream::new(SdkBody::from(key.to_protobuf_encoding()?))) .send() .await?; client diff --git a/src/transport.rs b/src/transport.rs index e63cc306..be5a7484 100644 --- a/src/transport.rs +++ b/src/transport.rs @@ -3,10 +3,7 @@ use std::{ future::{ready, Ready}, }; -use libp2p::{ - core::{Endpoint, PeerId}, - noise::NoiseError, -}; +use libp2p::{core::Endpoint, noise::NoiseError, PeerId}; pub fn auth_mapper( i: I,