diff --git a/Cargo.lock b/Cargo.lock index 3b8a0f9..e9c9833 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,18 +31,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" [[package]] name = "argh" @@ -63,7 +63,7 @@ dependencies = [ "argh_shared", "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", ] [[package]] @@ -131,9 +131,9 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.23", + "rustix 0.37.27", "slab", - "socket2 0.4.9", + "socket2 0.4.10", "waker-fn", ] @@ -237,9 +237,9 @@ checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" [[package]] name = "base64" -version = "0.21.4" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "base64ct" @@ -287,9 +287,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "block-buffer" @@ -351,7 +351,7 @@ dependencies = [ "cortex-m", "critical-section 1.1.2", "embassy-rp", - "getrandom 0.2.10", + "getrandom 0.2.11", "log", "rand 0.8.5", "rand_chacha 0.3.1", @@ -408,18 +408,18 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "cortex-m" @@ -456,18 +456,18 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] [[package]] name = "crc-any" -version = "2.4.3" +version = "2.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774646b687f63643eb0f4bf13dc263cb581c8c9e57973b6ddf78bda3994d88df" +checksum = "c01a5e1f881f6fb6099a7bdf949e946719fd4f1fefa56264890574febf0eb6d0" dependencies = [ "debug-helper", ] @@ -490,9 +490,9 @@ checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] @@ -570,22 +570,22 @@ source = "git+https://github.com/mkj/curve25519-dalek?branch=sunset#e4d2869ade3a dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", ] [[package]] name = "cyw43" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "cortex-m", "cortex-m-rt", "defmt", - "embassy-futures 0.1.0", + "embassy-futures 0.1.1 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", "embassy-net-driver-channel", - "embassy-sync 0.4.0", - "embassy-time", - "embedded-hal 1.0.0-rc.1", + "embassy-sync 0.5.0 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", + "embassy-time 0.2.0", + "embedded-hal 1.0.0-rc.3", "futures", "num_enum", ] @@ -593,7 +593,7 @@ dependencies = [ [[package]] name = "cyw43-pio" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "cyw43", "embassy-rp", @@ -602,38 +602,14 @@ dependencies = [ "pio-proc", ] -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - [[package]] name = "darling" version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" dependencies = [ - "darling_core 0.20.3", - "darling_macro 0.20.3", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", + "darling_core", + "darling_macro", ] [[package]] @@ -647,18 +623,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.37", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", + "syn 2.0.43", ] [[package]] @@ -667,9 +632,9 @@ version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ - "darling_core 0.20.3", + "darling_core", "quote", - "syn 2.0.37", + "syn 2.0.43", ] [[package]] @@ -698,7 +663,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", ] [[package]] @@ -733,9 +698,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", +] [[package]] name = "diff" @@ -791,6 +759,15 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +[[package]] +name = "document-features" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e493c573fce17f00dcab13b6ac057994f3ce17d1af4dc39bfd482b83c6eb6157" +dependencies = [ + "litrs", +] + [[package]] name = "ecdsa" version = "0.14.8" @@ -814,11 +791,11 @@ dependencies = [ [[package]] name = "ed25519" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "signature 2.1.0", + "signature 2.2.0", ] [[package]] @@ -841,7 +818,7 @@ version = "2.0.0-rc.3" source = "git+https://github.com/mkj/curve25519-dalek?branch=sunset#e4d2869ade3a2e511d54293a74e28be1d6125bdd" dependencies = [ "curve25519-dalek 4.0.0", - "ed25519 2.2.2", + "ed25519 2.2.3", "rand_core 0.6.4", "sha2 0.10.8", "subtle", @@ -876,13 +853,13 @@ dependencies = [ [[package]] name = "embassy-embedded-hal" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ - "embassy-futures 0.1.0", - "embassy-sync 0.4.0", - "embassy-time", + "embassy-futures 0.1.1 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", + "embassy-sync 0.5.0 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", + "embassy-time 0.2.0", "embedded-hal 0.2.7", - "embedded-hal 1.0.0-rc.1", + "embedded-hal 1.0.0-rc.3", "embedded-hal-async", "embedded-storage", "embedded-storage-async", @@ -891,48 +868,44 @@ dependencies = [ [[package]] name = "embassy-executor" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f2f7687ed60a799909eca1bf68b41e9f2ad03d740f0956a945ddabccc6aedb" +version = "0.4.0" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ - "atomic-polyfill 1.0.3", - "cfg-if", + "cortex-m", "critical-section 1.1.2", - "embassy-macros 0.1.0", - "embassy-time", - "futures-util", + "defmt", + "document-features", + "embassy-executor-macros", + "embassy-time 0.2.0", "log", - "static_cell", ] [[package]] -name = "embassy-executor" -version = "0.3.2" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +name = "embassy-executor-macros" +version = "0.4.0" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ - "atomic-polyfill 1.0.3", - "cortex-m", - "critical-section 1.1.2", - "defmt", - "embassy-macros 0.2.1", - "embassy-time", + "darling", + "proc-macro2", + "quote", + "syn 2.0.43", ] [[package]] name = "embassy-futures" -version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f878075b9794c1e4ac788c95b728f26aa6366d32eeb10c7051389f898f7d067" [[package]] name = "embassy-futures" version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f878075b9794c1e4ac788c95b728f26aa6366d32eeb10c7051389f898f7d067" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" [[package]] name = "embassy-hal-internal" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "cortex-m", "critical-section 1.1.2", @@ -940,44 +913,23 @@ dependencies = [ "num-traits", ] -[[package]] -name = "embassy-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f57fb96af50e126bb4ae0826604ac5b9f9ac1d32fb3576d552f7285bf68e67" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "embassy-macros" -version = "0.2.1" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" -dependencies = [ - "darling 0.20.3", - "proc-macro2", - "quote", - "syn 2.0.37", -] - [[package]] name = "embassy-net" version = "0.2.1" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "as-slice 0.2.1", "atomic-pool", + "defmt", + "document-features", "embassy-net-driver", - "embassy-sync 0.4.0", - "embassy-time", + "embassy-sync 0.5.0 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", + "embassy-time 0.2.0", "embedded-io-async", "embedded-nal-async", "futures", "generic-array 0.14.7", - "heapless", + "heapless 0.8.0", "log", "managed", "smoltcp", @@ -987,22 +939,25 @@ dependencies = [ [[package]] name = "embassy-net-driver" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" +dependencies = [ + "defmt", +] [[package]] name = "embassy-net-driver-channel" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ - "embassy-futures 0.1.0", + "embassy-futures 0.1.1 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", "embassy-net-driver", - "embassy-sync 0.4.0", + "embassy-sync 0.5.0 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", ] [[package]] name = "embassy-net-tuntap" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "async-io", "embassy-net-driver", @@ -1013,19 +968,19 @@ dependencies = [ [[package]] name = "embassy-net-wiznet" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ - "embassy-futures 0.1.0", + "embassy-futures 0.1.1 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", "embassy-net-driver-channel", - "embassy-time", - "embedded-hal 1.0.0-rc.1", + "embassy-time 0.2.0", + "embedded-hal 1.0.0-rc.3", "embedded-hal-async", ] [[package]] name = "embassy-rp" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "atomic-polyfill 1.0.3", "cfg-if", @@ -1033,14 +988,15 @@ dependencies = [ "cortex-m-rt", "critical-section 1.1.2", "defmt", + "document-features", "embassy-embedded-hal", - "embassy-futures 0.1.0", + "embassy-futures 0.1.1 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", "embassy-hal-internal", - "embassy-sync 0.4.0", - "embassy-time", + "embassy-sync 0.5.0 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", + "embassy-time 0.2.0", "embassy-usb-driver", "embedded-hal 0.2.7", - "embedded-hal 1.0.0-rc.1", + "embedded-hal 1.0.0-rc.3", "embedded-hal-async", "embedded-hal-nb", "embedded-io", @@ -1059,53 +1015,69 @@ dependencies = [ [[package]] name = "embassy-sync" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0525b466ca3ace30b57f2db868a35215dfaecd038d8668cb2db03feb7c069a0" +checksum = "dd938f25c0798db4280fcd8026bf4c2f48789aebf8f77b6e5cf8a7693ba114ec" dependencies = [ "cfg-if", "critical-section 1.1.2", + "embedded-io-async", "futures-util", - "heapless", + "heapless 0.8.0", ] [[package]] name = "embassy-sync" -version = "0.4.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +version = "0.5.0" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "cfg-if", "critical-section 1.1.2", + "embedded-io-async", "futures-util", - "heapless", + "heapless 0.8.0", ] [[package]] name = "embassy-time" -version = "0.1.5" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eece6d4c82b7533d3c5a7751024b83eb790b3a89dd1de29a6e9a76b33b53ce78" +dependencies = [ + "cfg-if", + "critical-section 1.1.2", + "embedded-hal 0.2.7", + "futures-util", + "heapless 0.7.17", +] + +[[package]] +name = "embassy-time" +version = "0.2.0" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "cfg-if", "critical-section 1.1.2", "defmt", + "document-features", "embedded-hal 0.2.7", - "embedded-hal 1.0.0-rc.1", + "embedded-hal 1.0.0-rc.3", "embedded-hal-async", "futures-util", - "heapless", + "heapless 0.8.0", "log", ] [[package]] name = "embassy-usb" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ - "embassy-futures 0.1.0", + "embassy-futures 0.1.1 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", "embassy-net-driver-channel", - "embassy-sync 0.4.0", + "embassy-sync 0.5.0 (git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8)", "embassy-usb-driver", - "heapless", + "heapless 0.8.0", "ssmarshal", "usbd-hid", ] @@ -1113,7 +1085,7 @@ dependencies = [ [[package]] name = "embassy-usb-driver" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=78a7ee7ec48a6ed26d770165e777beb06e92777c#78a7ee7ec48a6ed26d770165e777beb06e92777c" +source = "git+https://github.com/embassy-rs/embassy/?rev=90e96d281f87efdbea3a1418f5354f14386a42e8#90e96d281f87efdbea3a1418f5354f14386a42e8" dependencies = [ "defmt", ] @@ -1130,54 +1102,54 @@ dependencies = [ [[package]] name = "embedded-hal" -version = "1.0.0-rc.1" +version = "1.0.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2894bc2f0457b8ca3d6b8ab8aad64d9337583672494013457f86c5a9146c0e22" +checksum = "bc402f79e1fd22731ca945b4f97b5ff37e7b3f379312595c42bb2e8811c29920" [[package]] name = "embedded-hal-async" -version = "1.0.0-rc.1" +version = "1.0.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a8a3517745342155b3b00895a0f78417a453fb800d97a8bf4777d5720acde9" +checksum = "fa1fba2ef2ffb35d614acc6fb323ddf7facc45c069f24544d49ea54e5043626d" dependencies = [ - "embedded-hal 1.0.0-rc.1", + "embedded-hal 1.0.0-rc.3", ] [[package]] name = "embedded-hal-bus" -version = "0.1.0-rc.1" +version = "0.1.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662822f2853efaa9629ba6d424d7b0cbf8f7f52d68a8919c9afe56e7f9dd1b2a" +checksum = "1efb2ecab73461234acd6db8576463c11c315b44ce234f2ced82f87c60831f4f" dependencies = [ "critical-section 1.1.2", - "embedded-hal 1.0.0-rc.1", + "embedded-hal 1.0.0-rc.3", "embedded-hal-async", ] [[package]] name = "embedded-hal-nb" -version = "1.0.0-rc.1" +version = "1.0.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257e3bb0163c69195acb0ebe0083b017b963235861d5ea9741626abdc55f39c9" +checksum = "3cde58312a0675b6c0389eb0dceb2bf8c735a697b0b5baa1f23bbaf030636deb" dependencies = [ - "embedded-hal 1.0.0-rc.1", + "embedded-hal 1.0.0-rc.3", "nb 1.1.0", ] [[package]] name = "embedded-io" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9417478b5440a2c25f95b25e3ec6ec92e7f9a7ae90c9719e434daeec4ece71" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" dependencies = [ "defmt", ] [[package]] name = "embedded-io-adapters" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5aa94ce6a11ae812b533ab3cae0b12a26f231b49324273faa2fd5f4e1775a8c" +checksum = "b03facd2b544d24916f312a6026c1b548b8af012f788a554d498afdc8ef9c775" dependencies = [ "embedded-io", "embedded-io-async", @@ -1186,9 +1158,9 @@ dependencies = [ [[package]] name = "embedded-io-async" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de03527d6fb488b2d7c7a4dc81dfb6a657efe264256bfc70bb899746821666b1" +checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" dependencies = [ "defmt", "embedded-io", @@ -1196,38 +1168,36 @@ dependencies = [ [[package]] name = "embedded-nal" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447416d161ba378782c13e82b11b267d6d2104b4913679a7c5640e7e94f96ea7" +checksum = "b8a943fad5ed3d3f8a00f1e80f6bba371f1e7f0df28ec38477535eb318dc19cc" dependencies = [ - "heapless", "nb 1.1.0", "no-std-net", ] [[package]] name = "embedded-nal-async" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f75f0ac83505f354443332324ef1399463902718b95b4ce153ae9b3660f341" +checksum = "72229137a4fc12d239b0b7f50f04b30790678da6d782a0f3f1909bf57ec4b759" dependencies = [ "embedded-io-async", "embedded-nal", - "heapless", "no-std-net", ] [[package]] name = "embedded-storage" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "156d7a2fdd98ebbf9ae579cbceca3058cff946e13f8e17b90e3511db0508c723" +checksum = "a21dea9854beb860f3062d10228ce9b976da520a73474aed3171ec276bc0c032" [[package]] name = "embedded-storage-async" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052997a894670d0cde873faa7405bc98e2fd29f569d2acd568561bc1c396b35a" +checksum = "1763775e2323b7d5f0aa6090657f5e21cfa02ede71f5dc40eead06d64dcd15cc" dependencies = [ "embedded-storage", ] @@ -1268,23 +1238,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] @@ -1344,9 +1303,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -1359,9 +1318,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -1369,15 +1328,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -1386,9 +1345,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -1407,32 +1366,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -1487,9 +1446,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -1498,9 +1457,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "group" @@ -1532,26 +1491,45 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "heapless" -version = "0.7.16" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" dependencies = [ - "atomic-polyfill 0.1.11", - "defmt", - "hash32", + "atomic-polyfill 1.0.3", + "hash32 0.2.1", "rustc_version 0.4.0", "spin 0.9.8", "stable_deref_trait", ] +[[package]] +name = "heapless" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" +dependencies = [ + "defmt", + "hash32 0.3.1", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.4.1" @@ -1596,9 +1574,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad227c3af19d4914570ad36d30409928b75967c298feb9ea1969db3a610bb14e" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", "hashbrown", @@ -1630,18 +1608,18 @@ checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi 0.3.3", "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ "hermit-abi 0.3.3", - "rustix 0.38.14", - "windows-sys", + "rustix 0.38.28", + "windows-sys 0.52.0", ] [[package]] @@ -1655,15 +1633,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -1710,15 +1688,26 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.148" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libm" -version = "0.2.7" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall", +] [[package]] name = "linux-raw-sys" @@ -1728,15 +1717,21 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.7" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "litrs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9275e0933cf8bb20f008924c0cb07a0692fe54d8064996520bf998de9eb79aa" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -1756,9 +1751,9 @@ checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" [[package]] name = "memchr" -version = "2.6.3" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memoffset" @@ -1780,13 +1775,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1870,9 +1865,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", "libm", @@ -1919,18 +1914,18 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -1972,9 +1967,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" @@ -1988,15 +1983,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -2109,9 +2104,9 @@ dependencies = [ [[package]] name = "platforms" -version = "3.1.2" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" +checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" [[package]] name = "polling" @@ -2126,7 +2121,7 @@ dependencies = [ "libc", "log", "pin-project-lite", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2140,6 +2135,21 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +dependencies = [ + "critical-section 1.1.2", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -2184,9 +2194,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" dependencies = [ "unicode-ident", ] @@ -2259,7 +2269,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -2273,54 +2283,45 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "redox_users" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ - "getrandom 0.2.10", - "redox_syscall 0.2.16", + "getrandom 0.2.11", + "libredox", "thiserror", ] [[package]] name = "regex" -version = "1.9.5" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", ] [[package]] name = "regex-automata" -version = "0.3.8" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", ] [[package]] @@ -2331,9 +2332,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rfc6979" @@ -2367,13 +2368,13 @@ dependencies = [ [[package]] name = "rpassword" -version = "7.2.0" +version = "7.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" dependencies = [ "libc", "rtoolbox", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -2413,19 +2414,19 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sha2 0.10.8", - "signature 2.1.0", + "signature 2.2.0", "subtle", "zeroize", ] [[package]] name = "rtoolbox" -version = "0.0.1" +version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" dependencies = [ "libc", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -2449,34 +2450,34 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.19", + "semver 1.0.20", ] [[package]] name = "rustix" -version = "0.37.23" +version = "0.37.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ "bitflags 1.3.2", "errno", "io-lifetimes", "libc", "linux-raw-sys 0.3.8", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "rustix" -version = "0.38.14" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.7", - "windows-sys", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -2516,9 +2517,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "semver-parser" @@ -2528,22 +2529,22 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.188" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", ] [[package]] @@ -2591,9 +2592,9 @@ dependencies = [ [[package]] name = "signature" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", "rand_core 0.6.4", @@ -2627,21 +2628,21 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "smoltcp" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d2e3a36ac8fea7b94e666dfa3871063d6e0a5c9d5d4fec9a1a6b7b6760f0229" +checksum = "5a1a996951e50b5971a2c8c0fa05a381480d70a933064245c4a223ddc87ccc97" dependencies = [ "bitflags 1.3.2", "byteorder", "cfg-if", "defmt", - "heapless", + "heapless 0.8.0", "managed", ] @@ -2670,9 +2671,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", @@ -2680,12 +2681,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2761,11 +2762,11 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "static_cell" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49cd323fc21eb534f903ee78d781d622099f9716c5b408ed23bcf39f8f1651c0" +checksum = "2cd3f559c6c41cde362aed95cd84765907e06057f087b17269b41750ec40a3e7" dependencies = [ - "atomic-polyfill 1.0.3", + "portable-atomic", ] [[package]] @@ -2809,8 +2810,8 @@ dependencies = [ "ed25519-dalek 2.0.0-rc.3", "embedded-io", "futures", - "getrandom 0.2.10", - "heapless", + "getrandom 0.2.11", + "heapless 0.8.0", "hmac", "log", "poly1305", @@ -2818,7 +2819,7 @@ dependencies = [ "rand_core 0.6.4", "rsa 0.8.2", "sha2 0.10.8", - "signature 2.1.0", + "signature 2.2.0", "simplelog", "snafu", "ssh-key", @@ -2834,12 +2835,12 @@ version = "0.1.0" dependencies = [ "anyhow", "argh", - "embassy-futures 0.1.1", - "embassy-sync 0.3.0", + "embassy-futures 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "embassy-sync 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "embedded-io-adapters", "embedded-io-async", "futures", - "heapless", + "heapless 0.8.0", "libc", "log", "nix", @@ -2860,16 +2861,17 @@ dependencies = [ name = "sunset-demo-embassy-common" version = "0.1.0" dependencies = [ + "anyhow", "bcrypt", "defmt", "ed25519-dalek 2.0.0-rc.3", - "embassy-futures 0.1.1", + "embassy-futures 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "embassy-net", "embassy-net-driver", - "embassy-sync 0.3.0", - "embassy-time", + "embassy-sync 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "embassy-time 0.1.4", "embedded-io-async", - "heapless", + "heapless 0.8.0", "hmac", "log", "pretty-hex", @@ -2877,6 +2879,7 @@ dependencies = [ "sunset", "sunset-embassy", "sunset-sshwire-derive", + "tokio", ] [[package]] @@ -2892,31 +2895,29 @@ dependencies = [ "cyw43-pio", "defmt", "defmt-rtt", - "embassy-executor 0.3.2", - "embassy-futures 0.1.1", + "embassy-executor", + "embassy-futures 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "embassy-net", "embassy-net-driver", "embassy-net-wiznet", "embassy-rp", - "embassy-sync 0.3.0", - "embassy-time", + "embassy-sync 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "embassy-time 0.2.0", "embassy-usb", "embassy-usb-driver", - "embedded-hal 1.0.0-rc.1", + "embedded-hal 1.0.0-rc.3", "embedded-hal-async", "embedded-hal-bus", "embedded-io-async", "embedded-storage-async", "futures", - "getrandom 0.2.10", - "heapless", + "getrandom 0.2.11", + "heapless 0.8.0", "log", "panic-probe", - "pin-utils", "pretty-hex", "rand 0.8.5", "sha2 0.10.8", - "smoltcp", "snafu", "static_cell", "sunset", @@ -2933,20 +2934,19 @@ dependencies = [ "async-io", "atomic-polyfill 0.1.11", "critical-section 1.1.2", - "embassy-executor 0.1.1", - "embassy-futures 0.1.1", + "embassy-executor", + "embassy-futures 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "embassy-net", "embassy-net-tuntap", - "embassy-sync 0.3.0", - "embassy-time", + "embassy-sync 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "embassy-time 0.2.0", "embedded-io-async", "env_logger", - "heapless", + "heapless 0.8.0", "libc", "log", "rand 0.8.5", "sha2 0.10.8", - "static_cell", "sunset", "sunset-demo-embassy-common", "sunset-embassy", @@ -2958,8 +2958,8 @@ version = "0.2.0-alpha" dependencies = [ "atomic-polyfill 1.0.3", "defmt", - "embassy-futures 0.1.1", - "embassy-sync 0.3.0", + "embassy-futures 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "embassy-sync 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "embedded-io-async", "log", "pin-utils", @@ -2986,9 +2986,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.37" +version = "2.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" +checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" dependencies = [ "proc-macro2", "quote", @@ -3017,34 +3017,35 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.49" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.49" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", ] [[package]] name = "time" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" dependencies = [ "deranged", "itoa", "libc", "num_threads", + "powerfmt", "serde", "time-core", "time-macros", @@ -3058,9 +3059,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" dependencies = [ "time-core", ] @@ -3076,9 +3077,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.32.0" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ "backtrace", "bytes", @@ -3088,20 +3089,20 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.4", + "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", ] [[package]] @@ -3205,9 +3206,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "volatile-register" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee8f19f9d74293faf70901bc20ad067dc1ad390d2cbf1e3f75f721ffee908b6" +checksum = "de437e2a6208b014ab52972a27e59b33fa2920d3e00fe05026167a1c509d19cc" dependencies = [ "vcell", ] @@ -3232,9 +3233,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3242,24 +3243,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3267,28 +3268,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", @@ -3341,7 +3342,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -3350,13 +3360,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -3365,42 +3390,84 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "x25519-dalek" version = "2.0.0-rc.3" @@ -3413,9 +3480,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" dependencies = [ "zeroize_derive", ] @@ -3428,5 +3495,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.43", ] diff --git a/Cargo.toml b/Cargo.toml index 5e459ea..b7e71d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,7 @@ sunset-sshwire-derive = { version = "0.1", path = "sshwire-derive" } snafu = { version = "0.7", default-features = false, features = ["rust_1_61"] } # TODO: check that log macro calls disappear in no_std builds log = { version = "0.4" } -heapless = "0.7.10" +heapless = "0.8" # allows avoiding utf8 for SSH identifier names ascii = { version = "1.0", default-features = false } @@ -88,22 +88,22 @@ x25519-dalek = { git = "https://github.com/mkj/curve25519-dalek", branch = "suns # ed25519-dalek = { path = "/home/matt/3rd/rs/crypto/curve25519-dalek/ed25519-dalek" } # x25519-dalek = { path = "/home/matt/3rd/rs/crypto/curve25519-dalek/x25519-dalek" } -embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -# embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -embassy-usb = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -# embassy-sync = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -embassy-usb-driver = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } +embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +# embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +embassy-usb = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +# embassy-sync = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +embassy-usb-driver = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } # for cyw43 -embassy-net = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -embassy-net-driver = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -embassy-net-tuntap = { git = "https://github.com/embassy-rs/embassy", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } - -cyw43 = { git = "https://github.com/embassy-rs/embassy/", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -cyw43-pio = { git = "https://github.com/embassy-rs/embassy/", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } -embassy-net-wiznet = { git = "https://github.com/embassy-rs/embassy/", rev = "78a7ee7ec48a6ed26d770165e777beb06e92777c" } +embassy-net = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +embassy-net-driver = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +embassy-net-tuntap = { git = "https://github.com/embassy-rs/embassy", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } + +cyw43 = { git = "https://github.com/embassy-rs/embassy/", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +cyw43-pio = { git = "https://github.com/embassy-rs/embassy/", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } +embassy-net-wiznet = { git = "https://github.com/embassy-rs/embassy/", rev = "90e96d281f87efdbea3a1418f5354f14386a42e8" } # embassy-net = { path = "/home/matt/3rd/rs/embassy/embassy-net" } # embassy-net-driver = { path = "/home/matt/3rd/rs/embassy/embassy-net-driver" } diff --git a/README.md b/README.md index f6b410a..0333b19 100644 --- a/README.md +++ b/README.md @@ -50,14 +50,7 @@ Desirable: ## Rust versions -At present `sunset` requires nightly Rust, in order to use async functions in -the `Behaviour` traits. It is intended to switch to stable Rust once that -feature stabilises. - -`sunset-embassy` requires a nightly Rust version, as required by Embassy. See the -[embassy/rust-toolchain.toml](rust-toolchain.toml) for a known-good version. -Once [async functions in traits](https://github.com/rust-lang/rust/issues/91611) -becomes stable, Embassy should support stable Rust too. +At present Sunset will build with latest stable (1.75 at time of writing). ## Safety diff --git a/async/Cargo.toml b/async/Cargo.toml index d060fd5..cfd1c10 100644 --- a/async/Cargo.toml +++ b/async/Cargo.toml @@ -16,8 +16,8 @@ argh = "0.1" ssh-key = { version = "0.5", default-features = false, features = [ "std"] } -embassy-sync = { version = "0.3.0" } -embassy-futures = { version = "0.1.0" } +embassy-sync = { version = "0.5" } +embassy-futures = { version = "0.1" } embedded-io-async = "0.6" @@ -28,7 +28,7 @@ futures = "0.3" libc = "0.2" nix = "0.26" -heapless = "0.7.10" +heapless = "0.8" # TODO pretty-hex = "0.3" diff --git a/async/rust-toolchain.toml b/async/rust-toolchain.toml index 0c21c9b..9993e93 100644 --- a/async/rust-toolchain.toml +++ b/async/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-11-01" +channel = "stable" components = [ "rustfmt" ] diff --git a/async/src/lib.rs b/async/src/lib.rs index 2046324..8702a45 100644 --- a/async/src/lib.rs +++ b/async/src/lib.rs @@ -3,8 +3,6 @@ // avoid mysterious missing awaits #![deny(unused_must_use)] -#![feature(async_fn_in_trait)] - mod pty; mod cmdline_client; mod knownhosts; diff --git a/embassy/Cargo.toml b/embassy/Cargo.toml index 540e5e3..b7a863e 100644 --- a/embassy/Cargo.toml +++ b/embassy/Cargo.toml @@ -7,8 +7,8 @@ categories = ["network-programming", "embedded", "no-std"] license = "0BSD" [dependencies] -embassy-sync = { version = "0.3.0" } -embassy-futures = { version = "0.1.0" } +embassy-sync = { version = "0.5" } +embassy-futures = { version = "0.1" } embedded-io-async = "0.6" atomic-polyfill = "1.0" pin-utils = { version = "0.1" } diff --git a/embassy/demos/common/Cargo.toml b/embassy/demos/common/Cargo.toml index 161933f..96cef12 100644 --- a/embassy/demos/common/Cargo.toml +++ b/embassy/demos/common/Cargo.toml @@ -9,13 +9,13 @@ sunset-embassy = { path = "../../" } sunset = { path = "../../.." } sunset-sshwire-derive = { version = "0.1", path = "../../../sshwire-derive" } -embassy-sync = { version = "0.3.0" } -embassy-net = { version = "0.2.0", features = ["tcp", "dhcpv4", "medium-ethernet", "nightly"] } -embassy-net-driver = { version = "0.2.0" } -embassy-futures = { version = "0.1.0" } +embassy-sync = { version = "0.5" } +embassy-net = { version = "0.2", features = ["tcp", "dhcpv4", "medium-ethernet"] } +embassy-net-driver = { version = "0.2" } +embassy-futures = { version = "0.1" } embassy-time = { version = "0.1" } -heapless = "0.7.15" +heapless = "0.8" # using local fork # menu = "0.3" embedded-io-async = "0.6" @@ -34,5 +34,5 @@ sunset = { path = "../../..", features = ["std"] } tokio = { version = "1.25", features = ["full"] } [features] -defmt = ["dep:defmt", "embedded-io-async/defmt-03"] +defmt = ["dep:defmt", "embedded-io-async/defmt-03", "embassy-net/defmt"] log = ["embassy-net/log"] diff --git a/embassy/demos/common/src/config.rs b/embassy/demos/common/src/config.rs index 2dad306..1730dc1 100644 --- a/embassy/demos/common/src/config.rs +++ b/embassy/demos/common/src/config.rs @@ -83,8 +83,8 @@ impl SSHConfig { pub fn new() -> Result { let hostkey = SignKey::generate(KeyType::Ed25519, None)?; - let wifi_net = option_env!("WIFI_NET").unwrap_or("guest").into(); - let wifi_pw = option_env!("WIFI_PW").map(|p| p.into()); + let wifi_net: String::<32> = option_env!("WIFI_NET").unwrap_or("guest").try_into().trap()?; + let wifi_pw: Option> = option_env!("WIFI_PW").map(|s| s.try_into()).transpose().trap()?; let mac = random_mac()?; Ok(SSHConfig { hostkey, @@ -363,9 +363,9 @@ mod tests { Some(Ed25519PubKey { key: Blob([29u8; 32]) }), Some(Ed25519PubKey { key: Blob([39u8; 32]) }), ], - wifi_net: core::str::from_utf8([b'a'; 32].as_slice()).unwrap().into(), + wifi_net: core::str::from_utf8([b'a'; 32].as_slice()).unwrap().try_into().unwrap(), wifi_pw: Some( - core::str::from_utf8([b'f'; 63].as_slice()).unwrap().into(), + core::str::from_utf8([b'f'; 63].as_slice()).unwrap().try_into().unwrap(), ), mac: [6, 2, 3, 4, 5, 6], ip4_static: Some(embassy_net::StaticConfigV4 { diff --git a/embassy/demos/common/src/lib.rs b/embassy/demos/common/src/lib.rs index a206af9..24cab1b 100644 --- a/embassy/demos/common/src/lib.rs +++ b/embassy/demos/common/src/lib.rs @@ -1,8 +1,7 @@ #![cfg_attr(not(any(feature = "std", test)), no_std)] -#![feature(type_alias_impl_trait)] -#![feature(async_fn_in_trait)] -// #![allow(incomplete_features)] +// avoid warning about Send for the time being +#[allow(async_fn_in_trait)] mod server; diff --git a/embassy/demos/common/src/server.rs b/embassy/demos/common/src/server.rs index 725d13b..16b6da1 100644 --- a/embassy/demos/common/src/server.rs +++ b/embassy/demos/common/src/server.rs @@ -26,25 +26,6 @@ use sunset_embassy::{SSHServer, SunsetMutex}; use crate::SSHConfig; -// #[macro_export] -// macro_rules! singleton { -// ($val:expr) => {{ -// type T = impl Sized; -// static STATIC_CELL: StaticCell = StaticCell::new(); -// STATIC_CELL.init($val) -// }}; -// } -#[macro_export] -macro_rules! singleton { - ($val:expr) => {{ - type T = impl Sized; - static STATIC_CELL: StaticCell = StaticCell::new(); - let (x,) = STATIC_CELL.init(($val,)); - x - }}; -} - - // common entry point pub async fn listener(stack: &'static Stack, config: &SunsetMutex, diff --git a/embassy/demos/common/src/takepipe.rs b/embassy/demos/common/src/takepipe.rs index 87f721d..995c896 100644 --- a/embassy/demos/common/src/takepipe.rs +++ b/embassy/demos/common/src/takepipe.rs @@ -165,7 +165,8 @@ impl Read for TakeRead<'_> { if *c != self.counter { return Err(sunset::Error::ChannelEOF); } - Ok(o.read(buf).await) + // OK unwrap, pipe.read() is infallible + Ok(o.read(buf).await.unwrap()) }; let r = select( @@ -204,7 +205,8 @@ impl Write for TakeWrite<'_> { if *c != self.counter { return Err(sunset::Error::ChannelEOF); } - Ok(o.write(buf).await) + // OK unwrap, pipe.write is infallible + Ok(o.write(buf).await.unwrap()) }; let r = select( diff --git a/embassy/demos/picow/Cargo.toml b/embassy/demos/picow/Cargo.toml index 0dc4318..2f63662 100644 --- a/embassy/demos/picow/Cargo.toml +++ b/embassy/demos/picow/Cargo.toml @@ -16,16 +16,16 @@ cyw43-pio = { version = "0.1.0", optional = true } embassy-net-wiznet = { version = "0.1.0", optional = true } -embassy-executor = { version = "0.3", features = ["defmt", "integrated-timers", "executor-thread", "arch-cortex-m", "nightly"] } -embassy-time = { version = "0.1", features = ["defmt", "defmt-timestamp-uptime", "unstable-traits", "nightly"] } -embassy-rp = { version = "0.1.0", features = ["defmt", "unstable-traits", "nightly", "unstable-pac", "time-driver"] } +embassy-executor = { version = "0.4", features = ["defmt", "integrated-timers", "executor-thread", "arch-cortex-m"] } +embassy-time = { version = "0.2", features = ["defmt", "defmt-timestamp-uptime"] } +embassy-rp = { version = "0.1", features = ["defmt", "unstable-pac", "time-driver"] } # embassy-net/nightly is required for asynch::Read/Write on TcpReader/TcpWriter -embassy-net = { version = "0.2.0", features = ["tcp", "dhcpv4", "medium-ethernet", "nightly"] } -embassy-net-driver = { version = "0.2.0" } -embassy-usb-driver = { version = "0.1.0" } -embassy-sync = { version = "0.3.0" } -embassy-futures = { version = "0.1.0" } -embassy-usb = { version = "0.1.0" } +embassy-net = { version = "0.2", features = ["tcp", "dhcpv4", "medium-ethernet"] } +embassy-net-driver = { version = "0.2" } +embassy-usb-driver = { version = "0.1" } +embassy-sync = { version = "0.5" } +embassy-futures = { version = "0.1" } +embassy-usb = { version = "0.1" } atomic-polyfill = "0.1.5" static_cell = { version = "1.0", features = [ "nightly" ] } @@ -46,28 +46,20 @@ embedded-hal-async = { version = "1.0.0-alpha.10" } embedded-hal-bus = { version = "0.1.0-rc.1", features = ["async"], optional = true } embedded-io-async = "0.6" embedded-storage-async = { version = "0.4.0" } -heapless = "0.7.15" - -getrandom = { version = "0.2", default-features = false, features = ["custom"]} -pin-utils = "0.1" - -# using local fork -# menu = "0.3" +heapless = "0.8" caprand = { git = "https://github.com/mkj/caprand" } +getrandom = { version = "0.2", features = ["custom"] } critical-section = "1.1" rand = { version = "0.8", default-features = false, features = ["getrandom"] } sha2 = { version = "0.10", default-features = false } -# for defmt feature -smoltcp = { version = "0.10", default-features = false } - usbd-hid = "0.6" [features] default = ["cyw43", "defmt", "sunset-demo-embassy-common/defmt" ] -defmt = ["dep:defmt", "sunset/defmt", "sunset-embassy/defmt", "smoltcp/defmt"] +defmt = ["dep:defmt", "sunset/defmt", "sunset-embassy/defmt"] # for pico w board cyw43 = ["dep:cyw43", "dep:cyw43-pio"] diff --git a/embassy/demos/picow/rust-toolchain.toml b/embassy/demos/picow/rust-toolchain.toml index 0c21c9b..9993e93 100644 --- a/embassy/demos/picow/rust-toolchain.toml +++ b/embassy/demos/picow/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-11-01" +channel = "stable" components = [ "rustfmt" ] diff --git a/embassy/demos/picow/src/main.rs b/embassy/demos/picow/src/main.rs index 7e013be..7ce795b 100644 --- a/embassy/demos/picow/src/main.rs +++ b/embassy/demos/picow/src/main.rs @@ -1,8 +1,5 @@ #![no_std] #![no_main] -#![feature(type_alias_impl_trait)] -#![feature(async_fn_in_trait)] -// #![allow(incomplete_features)] #[allow(unused_imports)] #[cfg(not(feature = "defmt"))] @@ -30,7 +27,6 @@ use embassy_sync::signal::Signal; use sunset::*; use sunset_embassy::{SSHServer, SunsetMutex}; -use crate::demo_common::singleton; pub(crate) use sunset_demo_embassy_common as demo_common; mod flashconfig; @@ -75,19 +71,25 @@ async fn main(spawner: Spawner) { } else { flashconfig::load_or_create(&mut flash).await.unwrap() }; - let flash = &*singleton!(SunsetMutex::new(flash)); - let config = &*singleton!(SunsetMutex::new(config)); + static FLASH: StaticCell> = StaticCell::new(); + let flash = FLASH.init(SunsetMutex::new(flash)); + static CONFIG: StaticCell> = StaticCell::new(); + let config = CONFIG.init(SunsetMutex::new(config)); // A shared pipe to a local USB-serial (CDC) + static USBS: StaticCell = StaticCell::new(); + static USBP: StaticCell = StaticCell::new(); let usb_pipe = { - let p = singleton!(takepipe::TakePipeStorage::new()); - singleton!(p.build()) + let p = USBS.init(Default::default()); + USBP.init_with(|| p.build()) }; // A shared pipe to a local uart + static SERS: StaticCell = StaticCell::new(); + static SERP: StaticCell = StaticCell::new(); let serial1_pipe = { - let s = singleton!(takepipe::TakePipeStorage::new()); - singleton!(s.build()) + let p = SERS.init(Default::default()); + SERP.init_with(|| p.build()) }; spawner .spawn(serial::task( @@ -101,10 +103,12 @@ async fn main(spawner: Spawner) { .unwrap(); // Watchdog currently only used for triggering reset manually - let watchdog = singleton!(SunsetMutex::new( + static WD: StaticCell> = StaticCell::new(); + let watchdog = WD.init(SunsetMutex::new( embassy_rp::watchdog::Watchdog::new(p.WATCHDOG) )); + static STATE: StaticCell = StaticCell::new(); let state; // Spawn network tasks to handle incoming connections with demo_common::session() @@ -120,8 +124,7 @@ async fn main(spawner: Spawner) { let net_mac = match stack.hardware_address() { HardwareAddress::Ethernet(EthernetAddress(eth)) => eth, }; - let g = GlobalState { usb_pipe, serial1_pipe, config, flash, watchdog, net_mac }; - state = singleton!(g); + state = STATE.init_with(|| GlobalState { usb_pipe, serial1_pipe, config, flash, watchdog, net_mac }); for _ in 0..NUM_LISTENERS { spawner.spawn(cyw43_listener(&stack, config, state)).unwrap(); } @@ -139,8 +142,7 @@ async fn main(spawner: Spawner) { let net_mac = match stack.hardware_address() { HardwareAddress::Ethernet(EthernetAddress(eth)) => eth, }; - let g = GlobalState { usb_pipe, serial1_pipe, config, flash, watchdog, net_mac }; - state = singleton!(g); + state = STATE.init_with(|| GlobalState { usb_pipe, serial1_pipe, config, flash, watchdog, net_mac }); for _ in 0..NUM_LISTENERS { spawner.spawn(w5500_listener(&stack, config, state)).unwrap(); } diff --git a/embassy/demos/picow/src/picowmenu.rs b/embassy/demos/picow/src/picowmenu.rs index b8afd5a..203ab92 100644 --- a/embassy/demos/picow/src/picowmenu.rs +++ b/embassy/demos/picow/src/picowmenu.rs @@ -704,8 +704,10 @@ fn do_wifi_wpa2(_item: &Item, args: &[&str], context: &mut MenuCtx) { let _ = writeln!(out, "Too long pw"); return; } - c.wifi_net = net.into(); - c.wifi_pw = Some(pw.into()) + // OK unwrap, checked length + c.wifi_net = net.try_into().unwrap(); + // OK unwrap, checked length + c.wifi_pw = Some(pw.try_into().unwrap()) }); wifi_entry(context); } @@ -795,5 +797,5 @@ pub(crate) async fn request_pw( } let pw = core::str::from_utf8(&pw).map_err(|_| ())?; - return Ok(pw.into()); + pw.try_into().map_err(|_| ()) } diff --git a/embassy/demos/picow/src/serial.rs b/embassy/demos/picow/src/serial.rs index 4258cad..8dac629 100644 --- a/embassy/demos/picow/src/serial.rs +++ b/embassy/demos/picow/src/serial.rs @@ -31,8 +31,10 @@ pub(crate) async fn task( pin_rts: PIN_3, pipe: &'static TakePipe<'static>, ) -> ! { - let tx_buf = singleton!([0u8; 16]).as_mut_slice(); - let rx_buf = singleton!([0u8; 300]).as_mut_slice(); + static TX_BUF: StaticCell<[u8; 16]> = StaticCell::new(); + let tx_buf = TX_BUF.init(Default::default()).as_mut_slice(); + static RX_BUF: StaticCell<[u8; 300]> = StaticCell::new(); + let rx_buf = RX_BUF.init_with(|| [0u8; 300]).as_mut_slice(); let uart = BufferedUart::new_with_rtscts( uart, Irqs, diff --git a/embassy/demos/picow/src/usb.rs b/embassy/demos/picow/src/usb.rs index e158ce7..cc8c636 100644 --- a/embassy/demos/picow/src/usb.rs +++ b/embassy/demos/picow/src/usb.rs @@ -53,6 +53,7 @@ pub(crate) async fn task( let mut device_descriptor = [0; 256]; let mut config_descriptor = [0; 256]; let mut bos_descriptor = [0; 256]; + let mut msos_descriptor = [0; 16]; let mut control_buf = [0; 64]; // lives longer than builder @@ -66,6 +67,7 @@ pub(crate) async fn task( &mut device_descriptor, &mut config_descriptor, &mut bos_descriptor, + &mut msos_descriptor, &mut control_buf, ); diff --git a/embassy/demos/picow/src/w5500.rs b/embassy/demos/picow/src/w5500.rs index cf61fb5..e045ab7 100644 --- a/embassy/demos/picow/src/w5500.rs +++ b/embassy/demos/picow/src/w5500.rs @@ -20,8 +20,7 @@ use embedded_hal_bus::spi::ExclusiveDevice; use embassy_net_wiznet::*; -use static_cell::make_static; - +use static_cell::StaticCell; use rand::rngs::OsRng; use rand::RngCore; @@ -63,7 +62,8 @@ pub(crate) async fn w5500_stack( let mac_addr = config.lock().await.mac; // - let state = make_static!(State::<8, 8>::new()); + static STATE: StaticCell> = StaticCell::new(); + let state = STATE.init_with(|| State::new()); let (device, runner) = embassy_net_wiznet::new( mac_addr, state, @@ -84,15 +84,17 @@ pub(crate) async fn w5500_stack( let seed = OsRng.next_u64(); // Init network stack - let stack = &*make_static!(Stack::new( + static SR: StaticCell> = StaticCell::new(); + static STACK: StaticCell> = StaticCell::new(); + let stack = STACK.init_with(|| Stack::new( device, config, - make_static!(StackResources::<{ crate::NUM_SOCKETS }>::new()), + SR.init_with(|| StackResources::new()), seed )); // Launch network task - spawner.spawn(net_task(&stack)).unwrap(); + spawner.spawn(net_task(stack)).unwrap(); stack } diff --git a/embassy/demos/picow/src/wifi.rs b/embassy/demos/picow/src/wifi.rs index f0492c0..e044436 100644 --- a/embassy/demos/picow/src/wifi.rs +++ b/embassy/demos/picow/src/wifi.rs @@ -26,7 +26,6 @@ use static_cell::StaticCell; use rand::rngs::OsRng; use rand::RngCore; -use crate::demo_common::singleton; use crate::{SunsetMutex, SSHConfig}; bind_interrupts!(struct Irqs { @@ -60,7 +59,8 @@ pub(crate) async fn wifi_stack(spawner: &Spawner, let mut pio = Pio::new(pio0, Irqs); let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p24, p29, dma); - let state = singleton!(cyw43::State::new()); + static STATE: StaticCell = StaticCell::new(); + let state = STATE.init_with(|| cyw43::State::new()); let (net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; spawner.spawn(wifi_task(runner)).unwrap(); @@ -99,16 +99,18 @@ pub(crate) async fn wifi_stack(spawner: &Spawner, let seed = OsRng.next_u64(); + static SR: StaticCell> = StaticCell::new(); + // Init network stack - let stack = Stack::new( + static STACK: StaticCell> = StaticCell::new(); + let stack = STACK.init_with(|| Stack::new( net_device, config, - singleton!(StackResources::<{crate::NUM_SOCKETS}>::new()), - seed + SR.init_with(|| StackResources::new()), + seed) ); - let stack = &*singleton!(stack); - spawner.spawn(net_task(&stack)).unwrap(); + spawner.spawn(net_task(stack)).unwrap(); stack } diff --git a/embassy/demos/std/Cargo.toml b/embassy/demos/std/Cargo.toml index 06396b1..6883315 100644 --- a/embassy/demos/std/Cargo.toml +++ b/embassy/demos/std/Cargo.toml @@ -4,21 +4,21 @@ version = "0.1.0" edition = "2021" [dependencies] -embassy-executor = { version = "0.1.0", default-features=false, features = ["log", "std", "nightly", "integrated-timers"] } -embassy-time = { version = "0.1", default-features=false, features = ["log", "std"] } +# 131072 was determined empirically +embassy-executor = { version = "0.4", features = ["log", "arch-std", "integrated-timers", "executor-thread", "task-arena-size-131072"] } +embassy-time = { version = "0.2", default-features=false, features = ["log", "std"] } # embassy-net/nightly is required for asynch::Read/Write on TcpReader/TcpWriter -embassy-net = { version = "0.2.0", features = ["tcp", "dhcpv4", "medium-ethernet", "nightly"] } -embassy-net-tuntap = { version = "0.1.0" } -embassy-sync = { version = "0.3.0" } -embassy-futures = { version = "0.1.0" } +embassy-net = { version = "0.2", features = ["tcp", "dhcpv4", "medium-ethernet"] } +embassy-net-tuntap = { version = "0.1" } +embassy-sync = { version = "0.5" } +embassy-futures = { version = "0.1" } atomic-polyfill = "0.1.5" -static_cell = "1.0" log = { version = "0.4" } env_logger = "0.9.0" embedded-io-async = "0.6" -heapless = "0.7.15" +heapless = "0.8" # for tuntap libc = "0.2.101" diff --git a/embassy/demos/std/rust-toolchain.toml b/embassy/demos/std/rust-toolchain.toml index 0c21c9b..9993e93 100644 --- a/embassy/demos/std/rust-toolchain.toml +++ b/embassy/demos/std/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-11-01" +channel = "stable" components = [ "rustfmt" ] diff --git a/embassy/demos/std/src/main.rs b/embassy/demos/std/src/main.rs index fdef7a5..8188b1a 100644 --- a/embassy/demos/std/src/main.rs +++ b/embassy/demos/std/src/main.rs @@ -1,15 +1,11 @@ -#![feature(type_alias_impl_trait)] -#![feature(async_fn_in_trait)] -#![allow(incomplete_features)] #[allow(unused_imports)] use { log::{debug, error, info, log, trace, warn}, }; -use embassy_executor::{Spawner, Executor}; +use embassy_executor::Spawner; use embassy_net::{Stack, StackResources}; -use static_cell::StaticCell; use rand::rngs::OsRng; use rand::RngCore; @@ -25,7 +21,6 @@ use sunset_embassy::{SSHServer, SunsetMutex}; mod setupmenu; pub(crate) use sunset_demo_embassy_common as demo_common; -use crate::demo_common::singleton; use demo_common::{SSHConfig, demo_menu, DemoServer}; @@ -43,11 +38,11 @@ async fn main_task(spawner: Spawner) { // TODO config let opt_tap0 = "tap0"; - let config = &*singleton!( { + let config = Box::leak(Box::new({ let mut config = SSHConfig::new().unwrap(); config.set_console_pw(Some("pw")).unwrap(); SunsetMutex::new(config) - } ); + })); let net_config = if let Some(ref s) = config.lock().await.ip4_static { embassy_net::Config::ipv4_static(s.clone()) @@ -61,12 +56,13 @@ async fn main_task(spawner: Spawner) { let seed = OsRng.next_u64(); // Init network stack - let stack = &*singleton!(Stack::new( + let res = Box::leak(Box::new(StackResources::::new())); + let stack = Box::leak(Box::new(Stack::new( device, net_config, - singleton!(StackResources::::new()), + res, seed - )); + ))); // Launch network task spawner.spawn(net_task(stack)).unwrap(); @@ -140,10 +136,8 @@ async fn listener(stack: &'static Stack, demo_common::listener::<_, StdDemo>(stack, config, ()).await } - -static EXECUTOR: StaticCell = StaticCell::new(); - -fn main() { +#[embassy_executor::main] +async fn main(spawner: Spawner) { env_logger::builder() .filter_level(log::LevelFilter::Trace) .filter_module("sunset::runner", log::LevelFilter::Info) @@ -156,8 +150,5 @@ fn main() { .format_timestamp_nanos() .init(); - let executor = EXECUTOR.init(Executor::new()); - executor.run(|spawner| { - spawner.spawn(main_task(spawner)).unwrap(); - }); + spawner.spawn(main_task(spawner)).unwrap(); } diff --git a/embassy/rust-toolchain.toml b/embassy/rust-toolchain.toml index 0c21c9b..9993e93 100644 --- a/embassy/rust-toolchain.toml +++ b/embassy/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-11-01" +channel = "stable" components = [ "rustfmt" ] diff --git a/embassy/src/lib.rs b/embassy/src/lib.rs index d29e242..48143e7 100644 --- a/embassy/src/lib.rs +++ b/embassy/src/lib.rs @@ -1,6 +1,4 @@ #![no_std] -#![feature(async_fn_in_trait)] -#![allow(incomplete_features)] #![forbid(unsafe_code)] diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 0c21c9b..9993e93 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-11-01" +channel = "stable" components = [ "rustfmt" ] diff --git a/testing/ci.sh b/testing/ci.sh index 737b6cf..246e4a9 100755 --- a/testing/ci.sh +++ b/testing/ci.sh @@ -26,17 +26,17 @@ if [ -z "$OFFLINE" ]; then ) fi -# stable - disabled now due to async fn in Behaviour -#cargo test +# stable +cargo test # build non-testing, will be no_std -#cargo build -cargo +nightly build +cargo build +cargo doc +cargo test --doc + # nightly +cargo +nightly build cargo +nightly test -cargo +nightly doc -cargo +nightly test --doc - ( cd async # only test lib since some examples are broken