diff --git a/Cargo.lock b/Cargo.lock index c4ec6af..ce5b47f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,10 +40,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -55,12 +55,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "allocator-api2" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" - [[package]] name = "android-activity" version = "0.6.0" @@ -68,7 +62,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.6.0", + "bitflags 2.8.0", "cc", "cesu8", "jni", @@ -138,19 +132,20 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", + "once_cell", "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "approx" @@ -198,7 +193,7 @@ dependencies = [ "futures", "log", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "serde", "tokio", ] @@ -210,7 +205,7 @@ source = "git+http://github.com/kaimast/asim.git#46831b6806e4aa67ce48b6d1ecebdd4 dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -232,18 +227,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -279,8 +274,8 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper 1.0.1", - "tower 0.5.1", + "sync_wrapper", + "tower 0.5.2", "tower-layer", "tower-service", ] @@ -300,7 +295,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper", "tower-layer", "tower-service", ] @@ -355,9 +350,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" dependencies = [ "serde", ] @@ -400,22 +395,22 @@ checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" +checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -426,23 +421,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" - -[[package]] -name = "calloop" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" -dependencies = [ - "bitflags 2.6.0", - "log", - "polling", - "rustix", - "slab", - "thiserror", -] +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "calloop" @@ -450,7 +431,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "log", "polling", "rustix", @@ -458,25 +439,13 @@ dependencies = [ "thiserror", ] -[[package]] -name = "calloop-wayland-source" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" -dependencies = [ - "calloop 0.12.4", - "rustix", - "wayland-backend", - "wayland-client", -] - [[package]] name = "calloop-wayland-source" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" dependencies = [ - "calloop 0.13.0", + "calloop", "rustix", "wayland-backend", "wayland-client", @@ -484,9 +453,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.1" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "jobserver", "libc", @@ -519,9 +488,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "clap" -version = "4.5.21" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -529,9 +498,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.21" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -541,21 +510,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "clap_lex" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "clipboard-win" @@ -716,7 +685,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59fd57d82eb4bfe7ffa9b1cec0c05e2fd378155b47f255a67983cb4afe0e80c2" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "fontdb", "log", "rangemap", @@ -743,9 +712,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -772,18 +741,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -800,15 +769,15 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-common" @@ -899,7 +868,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", "unicode-xid", ] @@ -946,7 +915,7 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.1" -source = "git+https://github.com/iced-rs/winit.git?rev=254d6b3420ce4e674f516f7a2bd440665e05484d#254d6b3420ce4e674f516f7a2bd440665e05484d" +source = "git+https://github.com/iced-rs/winit.git?rev=11414b6aa45699f038114e61b4ddf5102b2d3b4b#11414b6aa45699f038114e61b4ddf5102b2d3b4b" [[package]] name = "either" @@ -971,14 +940,14 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -986,9 +955,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ "anstream", "anstyle", @@ -1015,12 +984,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1041,9 +1010,9 @@ checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" [[package]] name = "etagere" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e2f1e3be19fb10f549be8c1bf013e8675b4066c445e36eb76d2ebb2f54ee495" +checksum = "fc89bf99e5dc15954a60f707c1e09d7540e5cd9af85fa75caa0b510bc08c5342" dependencies = [ "euclid", "svg_fmt", @@ -1092,6 +1061,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "font-types" version = "0.7.3" @@ -1142,7 +1117,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -1208,7 +1183,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -1266,12 +1241,24 @@ name = "getrandom" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi", + "wasi 0.13.3+wasi-0.2.2", "wasm-bindgen", + "windows-targets 0.52.6", ] [[package]] @@ -1320,9 +1307,9 @@ dependencies = [ [[package]] name = "glutin_wgl_sys" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" +checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" dependencies = [ "gl_generator", ] @@ -1335,7 +1322,7 @@ dependencies = [ "cosmic-text", "etagere", "lru", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "wgpu", ] @@ -1345,7 +1332,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "gpu-alloc-types", ] @@ -1355,7 +1342,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -1372,13 +1359,13 @@ dependencies = [ [[package]] name = "gpu-descriptor" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" +checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "gpu-descriptor-types", - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -1387,7 +1374,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -1402,9 +1389,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -1412,7 +1399,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.6.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -1440,16 +1427,15 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] [[package]] name = "hdrhistogram" @@ -1496,9 +1482,9 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -1548,9 +1534,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", @@ -1602,7 +1588,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ "iced_core", "iced_futures", @@ -1615,16 +1601,15 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "bytes", "glam 0.25.0", "log", "num-traits", - "once_cell", "palette", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "smol_str", "thiserror", "web-time", @@ -1633,12 +1618,12 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ "futures", "iced_core", "log", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "tokio", "wasm-bindgen-futures", "wasm-timer", @@ -1647,18 +1632,17 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "bytemuck", "cosmic-text", "half", "iced_core", "iced_futures", "log", - "once_cell", "raw-window-handle", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "thiserror", "unicode-segmentation", ] @@ -1666,7 +1650,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ "iced_graphics", "iced_wgpu", @@ -1677,7 +1661,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ "bytes", "iced_core", @@ -1689,9 +1673,9 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "bytemuck", "futures", "glam 0.25.0", @@ -1699,8 +1683,7 @@ dependencies = [ "guillotiere", "iced_graphics", "log", - "once_cell", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "thiserror", "wgpu", ] @@ -1708,13 +1691,12 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ "iced_renderer", "iced_runtime", "num-traits", - "once_cell", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "thiserror", "unicode-segmentation", ] @@ -1722,13 +1704,13 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0-dev" -source = "git+https://github.com/iced-rs/iced.git#2a2e20b0a35bcf4da9ac34ab2f664485c4e1dbe3" +source = "git+https://github.com/iced-rs/iced.git#da1726b134ae084dd76b9e0a1107a771f69ed7c9" dependencies = [ "iced_futures", "iced_graphics", "iced_runtime", "log", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "thiserror", "tracing", "wasm-bindgen-futures", @@ -1750,12 +1732,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] @@ -1778,18 +1760,18 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jni" @@ -1824,10 +1806,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1865,15 +1848,15 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.164" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -1891,16 +1874,16 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "libc", - "redox_syscall 0.5.7", + "redox_syscall 0.5.8", ] [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "litrs" @@ -1920,9 +1903,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "lru" @@ -1975,7 +1958,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block", "core-graphics-types", "foreign-types", @@ -1998,38 +1981,37 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] [[package]] name = "naga" -version = "23.0.0" +version = "23.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d5941e45a15b53aad4375eedf02033adb7a28931eedc31117faffa52e6a857e" +checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg_aliases 0.1.1", "codespan-reporting", "hexf-parse", - "indexmap 2.6.0", + "indexmap 2.7.1", "log", "petgraph", "rustc-hash 1.1.0", @@ -2045,7 +2027,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "jni-sys", "log", "ndk-sys 0.6.0+11769913", @@ -2084,7 +2066,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if", "cfg_aliases 0.2.1", "libc", @@ -2147,7 +2129,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -2181,7 +2163,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "libc", "objc2", @@ -2197,7 +2179,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "objc2", "objc2-core-location", @@ -2221,7 +2203,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "objc2", "objc2-foundation", @@ -2253,9 +2235,9 @@ dependencies = [ [[package]] name = "objc2-encode" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] name = "objc2-foundation" @@ -2263,7 +2245,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "dispatch", "libc", @@ -2288,7 +2270,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "objc2", "objc2-foundation", @@ -2300,7 +2282,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "objc2", "objc2-foundation", @@ -2323,7 +2305,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "objc2", "objc2-cloud-kit", @@ -2355,7 +2337,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "objc2", "objc2-core-location", @@ -2364,9 +2346,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -2398,7 +2380,7 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4" dependencies = [ - "ttf-parser 0.25.0", + "ttf-parser 0.25.1", ] [[package]] @@ -2422,7 +2404,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -2468,7 +2450,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.7", + "redox_syscall 0.5.8", "smallvec", "windows-targets 0.52.6", ] @@ -2492,14 +2474,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.6.0", + "indexmap 2.7.1", ] [[package]] name = "phf" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_macros", "phf_shared", @@ -2507,61 +2489,61 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand", + "rand 0.8.5", ] [[package]] name = "phf_macros" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ "phf_generator", "phf_shared", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "phf_shared" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ "siphasher", ] [[package]] name = "pin-project" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -2596,7 +2578,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -2616,9 +2598,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -2631,9 +2613,9 @@ checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" [[package]] name = "prost" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", "prost-derive", @@ -2641,22 +2623,22 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "prost-types" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ "prost", ] @@ -2672,9 +2654,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -2686,8 +2668,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.0", + "zerocopy 0.8.14", ] [[package]] @@ -2697,7 +2690,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.0", ] [[package]] @@ -2706,14 +2709,24 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" +dependencies = [ + "getrandom 0.3.1", + "zerocopy 0.8.14", ] [[package]] name = "range-alloc" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" +checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" [[package]] name = "rangemap" @@ -2749,9 +2762,9 @@ dependencies = [ [[package]] name = "read-fonts" -version = "0.22.5" +version = "0.22.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a04b892cb6f91951f144c33321843790c8574c825aafdb16d815fd7183b5229" +checksum = "69aacb76b5c29acfb7f90155d39759a29496aebb49395830e928a9703d2eec2f" dependencies = [ "bytemuck", "font-types", @@ -2777,11 +2790,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -2841,7 +2854,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ "base64 0.21.7", - "bitflags 2.6.0", + "bitflags 2.8.0", "serde", "serde_derive", ] @@ -2866,28 +2879,28 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rustix" -version = "0.38.40" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "rustybuzz" @@ -2895,7 +2908,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "bytemuck", "libm", "smallvec", @@ -2935,48 +2948,48 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sctk-adwaita" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7555fcb4f753d095d734fdefebb0ad8c98478a21db500492d87c55913d3b0086" +checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" dependencies = [ "ab_glyph", "log", "memmap2", - "smithay-client-toolkit 0.18.1", + "smithay-client-toolkit", "tiny-skia", ] [[package]] name = "self_cell" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" +checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" [[package]] name = "serde" -version = "1.0.215" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "itoa", "memchr", @@ -3025,12 +3038,12 @@ dependencies = [ "env_logger", "fast-float", "futures", - "getrandom", + "getrandom 0.3.1", "instant", "log", "num_cpus", "parking_lot 0.12.3", - "rand", + "rand 0.9.0", "ron", "serde", "struct_iterable", @@ -3106,9 +3119,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "0.3.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "skrifa" @@ -3144,40 +3157,15 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -[[package]] -name = "smithay-client-toolkit" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" -dependencies = [ - "bitflags 2.6.0", - "calloop 0.12.4", - "calloop-wayland-source 0.2.0", - "cursor-icon", - "libc", - "log", - "memmap2", - "rustix", - "thiserror", - "wayland-backend", - "wayland-client", - "wayland-csd-frame", - "wayland-cursor", - "wayland-protocols 0.31.2", - "wayland-protocols-wlr 0.2.0", - "wayland-scanner", - "xkeysym", -] - [[package]] name = "smithay-client-toolkit" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.6.0", - "calloop 0.13.0", - "calloop-wayland-source 0.3.0", + "bitflags 2.8.0", + "calloop", + "calloop-wayland-source", "cursor-icon", "libc", "log", @@ -3188,8 +3176,8 @@ dependencies = [ "wayland-client", "wayland-csd-frame", "wayland-cursor", - "wayland-protocols 0.32.5", - "wayland-protocols-wlr 0.3.5", + "wayland-protocols", + "wayland-protocols-wlr", "wayland-scanner", "xkeysym", ] @@ -3201,7 +3189,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc8216eec463674a0e90f29e0ae41a4db573ec5b56b1c6c1c71615d249b6d846" dependencies = [ "libc", - "smithay-client-toolkit 0.19.2", + "smithay-client-toolkit", "wayland-backend", ] @@ -3216,9 +3204,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3230,7 +3218,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -3269,7 +3257,7 @@ dependencies = [ "proc-macro2", "quote", "struct_iterable_internal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -3313,9 +3301,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -3324,15 +3312,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" [[package]] name = "sys-locale" @@ -3354,9 +3336,9 @@ dependencies = [ [[package]] name = "test-log" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dffced63c2b5c7be278154d76b479f9f9920ed34e7574201407f0b14e2bbb93" +checksum = "e7f46083d221181166e5b6f6b1e5f1d499f3a76888826e6cb1d057554157cd0f" dependencies = [ "env_logger", "test-log-macros", @@ -3365,13 +3347,13 @@ dependencies = [ [[package]] name = "test-log-macros" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5" +checksum = "888d0c3c6db53c0fdab160d2ed5e12ba745383d3e85813f2ea0f2b1475ab553f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -3391,7 +3373,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -3431,9 +3413,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -3446,9 +3428,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -3463,20 +3445,20 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -3485,9 +3467,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -3508,7 +3490,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.1", "toml_datetime", "winnow", ] @@ -3554,7 +3536,7 @@ dependencies = [ "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand", + "rand 0.8.5", "slab", "tokio", "tokio-util", @@ -3565,14 +3547,14 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 0.1.2", + "sync_wrapper", "tower-layer", "tower-service", ] @@ -3591,9 +3573,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -3602,20 +3584,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -3645,9 +3627,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -3681,9 +3663,9 @@ checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" [[package]] name = "ttf-parser" -version = "0.25.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5902c5d130972a0000f60860bfbf46f7ca3db5391eddfedd1b8728bd9dc96c0e" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" [[package]] name = "typeid" @@ -3711,9 +3693,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-bidi-mirroring" @@ -3729,9 +3711,9 @@ checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" [[package]] name = "unicode-linebreak" @@ -3777,9 +3759,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "version_check" @@ -3812,49 +3794,59 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3862,22 +3854,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-timer" @@ -3914,7 +3909,7 @@ version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "rustix", "wayland-backend", "wayland-scanner", @@ -3926,7 +3921,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cursor-icon", "wayland-backend", ] @@ -3942,25 +3937,13 @@ dependencies = [ "xcursor", ] -[[package]] -name = "wayland-protocols" -version = "0.31.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" -dependencies = [ - "bitflags 2.6.0", - "wayland-backend", - "wayland-client", - "wayland-scanner", -] - [[package]] name = "wayland-protocols" version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -3968,27 +3951,14 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" -dependencies = [ - "bitflags 2.6.0", - "wayland-backend", - "wayland-client", - "wayland-protocols 0.31.2", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-wlr" -version = "0.2.0" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +checksum = "9b31cab548ee68c7eb155517f2212049dc151f7cd7910c2b66abfd31c3ee12bd" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "wayland-backend", "wayland-client", - "wayland-protocols 0.31.2", + "wayland-protocols", "wayland-scanner", ] @@ -3998,10 +3968,10 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "wayland-backend", "wayland-client", - "wayland-protocols 0.32.5", + "wayland-protocols", "wayland-scanner", ] @@ -4030,9 +4000,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -4050,9 +4020,9 @@ dependencies = [ [[package]] name = "wgpu" -version = "23.0.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ab52f2d3d18b70d5ab8dd270a1cff3ebe6dbe4a7d13c1cc2557138a9777fdc" +checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" dependencies = [ "arrayvec", "cfg_aliases 0.1.1", @@ -4075,17 +4045,17 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "23.0.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0c68e7b6322a03ee5b83fcd92caeac5c2a932f6457818179f4652ad2a9c065" +checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" dependencies = [ "arrayvec", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.8.0", "bytemuck", "cfg_aliases 0.1.1", "document-features", - "indexmap 2.6.0", + "indexmap 2.7.1", "log", "naga", "once_cell", @@ -4101,15 +4071,15 @@ dependencies = [ [[package]] name = "wgpu-hal" -version = "23.0.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de6e7266b869de56c7e3ed72a954899f71d14fec6cc81c102b7530b92947601b" +checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set", - "bitflags 2.6.0", + "bitflags 2.8.0", "block", "bytemuck", "cfg_aliases 0.1.1", @@ -4150,7 +4120,7 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "js-sys", "web-sys", ] @@ -4231,7 +4201,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -4242,7 +4212,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", ] [[package]] @@ -4471,16 +4441,16 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winit" -version = "0.30.1" -source = "git+https://github.com/iced-rs/winit.git?rev=254d6b3420ce4e674f516f7a2bd440665e05484d#254d6b3420ce4e674f516f7a2bd440665e05484d" +version = "0.30.8" +source = "git+https://github.com/iced-rs/winit.git?rev=11414b6aa45699f038114e61b4ddf5102b2d3b4b#11414b6aa45699f038114e61b4ddf5102b2d3b4b" dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.6.0", + "bitflags 2.8.0", "block2", "bytemuck", - "calloop 0.12.4", + "calloop", "cfg_aliases 0.2.1", "concurrent-queue", "core-foundation", @@ -4502,7 +4472,7 @@ dependencies = [ "redox_syscall 0.4.1", "rustix", "sctk-adwaita", - "smithay-client-toolkit 0.18.1", + "smithay-client-toolkit", "smol_str", "tracing", "unicode-segmentation", @@ -4510,7 +4480,7 @@ dependencies = [ "wasm-bindgen-futures", "wayland-backend", "wayland-client", - "wayland-protocols 0.31.2", + "wayland-protocols", "wayland-protocols-plasma", "web-sys", "web-time", @@ -4522,13 +4492,22 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "ad699df48212c6cc6eb4435f35500ac6fd3b9913324f938aea302022ce19d310" dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.8.0", +] + [[package]] name = "x11-dl" version = "2.21.0" @@ -4573,7 +4552,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "dlib", "log", "once_cell", @@ -4588,9 +4567,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" [[package]] name = "yazi" @@ -4611,7 +4590,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a367f292d93d4eab890745e75a778da40909cab4d6ff8173693812f79c4a2468" +dependencies = [ + "zerocopy-derive 0.8.14", ] [[package]] @@ -4622,5 +4610,16 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.96", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3931cb58c62c13adec22e38686b559c86a30565e16ad6e8510a337cedc611e1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", ] diff --git a/Cargo.toml b/Cargo.toml index e5c1034..2ba78c3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,12 +12,13 @@ members = [ [workspace.dependencies] asim = { git="http://github.com/kaimast/asim.git" } log = "0.4" -rand = "0.8" +rand = "0.9" +getrandom = "0.3" ron = "0.8" console-subscriber = "0.4" dashmap = "6" #winit = "0.30" -winit = { git = "https://github.com/iced-rs/winit.git", rev="254d6b3420ce4e674f516f7a2bd440665e05484d" } +winit = { git = "https://github.com/iced-rs/winit.git", rev="11414b6aa45699f038114e61b4ddf5102b2d3b4b" } wgpu = { version="23", features=["spirv"] } iced_aw = { version="0.11", default-features=false } #iced = "0.13" @@ -50,4 +51,4 @@ iced_widget = { git="https://github.com/iced-rs/iced.git"} iced_winit = { git="https://github.com/iced-rs/iced.git"} iced_core = { git="https://github.com/iced-rs/iced.git"} iced_wgpu = { git="https://github.com/iced-rs/iced.git"} -winit = { git = "https://github.com/iced-rs/winit.git", rev="254d6b3420ce4e674f516f7a2bd440665e05484d" } +winit = { git = "https://github.com/iced-rs/winit.git", rev="11414b6aa45699f038114e61b4ddf5102b2d3b4b" } diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..565b26d --- /dev/null +++ b/NEWS @@ -0,0 +1,6 @@ +UNRELEASED (0.2) + - Updated to Rust 2024 + +0.1: + - Initial release + - Support for Ethereum and PBFT diff --git a/cow-tree/Cargo.toml b/cow-tree/Cargo.toml index bd15615..be19c4a 100644 --- a/cow-tree/Cargo.toml +++ b/cow-tree/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cow-tree" version = "0.1.0" -edition = "2021" +edition = "2024" [dev-dependencies] sha3 = "0.10" diff --git a/cow-tree/src/lib.rs b/cow-tree/src/lib.rs index 44ea2bf..ed102d8 100644 --- a/cow-tree/src/lib.rs +++ b/cow-tree/src/lib.rs @@ -1,6 +1,6 @@ #![feature(trait_alias)] -use generic_array::{typenum, GenericArray}; +use generic_array::{GenericArray, typenum}; mod node; use node::{FrozenNode, Node}; diff --git a/cow-tree/src/node.rs b/cow-tree/src/node.rs index a81c211..88245cf 100644 --- a/cow-tree/src/node.rs +++ b/cow-tree/src/node.rs @@ -1,4 +1,4 @@ -use super::{Value, BITS_PER_NODE}; +use super::{BITS_PER_NODE, Value}; use std::rc::Rc; @@ -80,11 +80,14 @@ impl Node { pub fn take_child(&mut self, idx: u8) -> Option> { assert!((idx as usize) < CHILDREN_PER_BRANCH); - match self { + match *self { Self::Leaf(_) => panic!("Cannot get child of leaf!"), Self::Branch { ref mut children } => children[idx as usize].take(), - Self::Extension { bits, child } => { - if *bits == idx { + Self::Extension { + bits, + ref mut child, + } => { + if bits == idx { child.take() } else { None @@ -131,7 +134,7 @@ impl Node { pub fn set_child(&mut self, idx: u8, new_child: Box) { assert!((idx as usize) < CHILDREN_PER_BRANCH); - match self { + match *self { Self::Leaf(_) => panic!("Cannot set child of leaf!"), Self::Branch { ref mut children } => { children[idx as usize] = Some(new_child); @@ -140,7 +143,7 @@ impl Node { bits, ref mut child, } => { - if *bits != idx { + if bits != idx { panic!("Cannot set child"); } diff --git a/justfile b/justfile index 201a9a7..007fc3b 100644 --- a/justfile +++ b/justfile @@ -10,12 +10,11 @@ all: build #generate-web install: build cargo install {{BUILD_FLAGS}} --path=./simba-cmd --locked - cargo install {{BUILD_FLAGS}} --path=./visualizer --locked + cargo install {{BUILD_FLAGS}} --path=./native-gui --locked lint: lint-cmd lint-native validate-shaders #lint-web build: build-native build-cmd #build-web - check: cargo check --package=simba-native-gui cargo check --package=simba-cmd diff --git a/native-gui/Cargo.toml b/native-gui/Cargo.toml index f09fed2..d261974 100644 --- a/native-gui/Cargo.toml +++ b/native-gui/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "simba-native-gui" version = "0.1.0" -edition = "2021" +edition = "2024" license = "MIT" description = "Simulating Byzantine Fault-Tolerant Applications" diff --git a/native-gui/src/main.rs b/native-gui/src/main.rs index 698d09e..727f548 100644 --- a/native-gui/src/main.rs +++ b/native-gui/src/main.rs @@ -1,8 +1,8 @@ // Clippy bug #![allow(clippy::needless_return)] -use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; +use std::sync::atomic::{AtomicBool, Ordering}; use anyhow::Context; diff --git a/rust-toolchain.toml b/rust-toolchain.toml index ef9bee1..491ee13 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2024-11-15" +channel = "nightly-2025-01-26" targets = ["wasm32-unknown-unknown"] diff --git a/simba-cmd/Cargo.toml b/simba-cmd/Cargo.toml index 087978f..e8021cb 100644 --- a/simba-cmd/Cargo.toml +++ b/simba-cmd/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "simba-cmd" version = "0.1.0" -edition = "2021" +edition = "2024" [[bin]] name = "simba" diff --git a/simba/Cargo.toml b/simba/Cargo.toml index 4f423e4..50a26a3 100644 --- a/simba/Cargo.toml +++ b/simba/Cargo.toml @@ -1,13 +1,14 @@ [package] name = "simba" version = "0.1.0" -edition = "2021" +edition = "2024" license = "MIT" description = "Simulating Byzantine Fault-Tolerant Applications" [dependencies] log = { workspace=true } -rand = { workspace=true, features=["getrandom"] } +rand = { workspace=true } +getrandom = { workspace=true } ron = { workspace=true } uint = "0.10" dashmap = { workspace=true } @@ -17,7 +18,6 @@ derive_more = { version="1.0.0-beta.6", features=["display", "from_str", "add_as parking_lot = "0.12" futures = "0.3" async-trait = "0.1" -getrandom = "0.2" num_cpus = "1" csv = "1" ctrlc = { version="3", features=["termination"], optional=true } @@ -38,4 +38,4 @@ test-log = "0.2" default = [] all = ["runners"] runners = ["ctrlc"] -wasm = ["getrandom/js", "instant/wasm-bindgen"] +wasm = ["getrandom/wasm_js", "instant/wasm-bindgen"] diff --git a/simba/src/clients.rs b/simba/src/clients.rs index f936822..8951483 100644 --- a/simba/src/clients.rs +++ b/simba/src/clients.rs @@ -1,6 +1,6 @@ use crate::logic::AccountId; use crate::logic::Transaction; -use crate::node::{get_node_logic, Node}; +use crate::node::{Node, get_node_logic}; use crate::object::{Object, ObjectId}; use std::cell::RefCell; diff --git a/simba/src/config.rs b/simba/src/config.rs index 7b1638c..33a4dab 100644 --- a/simba/src/config.rs +++ b/simba/src/config.rs @@ -105,7 +105,7 @@ impl Default for ProtocolConfiguration { impl ProtocolConfiguration { pub fn set(&mut self, parameter: &ParameterType, value: ParameterValue) { - match self { + match *self { Self::NakamotoConsensus { ref mut max_block_size, .. @@ -173,7 +173,7 @@ impl NetworkConfiguration { } pub fn set(&mut self, parameter: &ParameterType, value: ParameterValue) { - match self { + match *self { Self::Random { ref mut num_mining_nodes, ref mut num_non_mining_nodes, diff --git a/simba/src/events.rs b/simba/src/events.rs index c89a3c3..03dbcdb 100644 --- a/simba/src/events.rs +++ b/simba/src/events.rs @@ -1,4 +1,4 @@ -use std::sync::{mpsc, OnceLock}; +use std::sync::{OnceLock, mpsc}; use crate::config::TimeoutConfig; use crate::logic::BlockId; diff --git a/simba/src/failures.rs b/simba/src/failures.rs index 88e10ea..3c3a162 100644 --- a/simba/src/failures.rs +++ b/simba/src/failures.rs @@ -21,7 +21,7 @@ impl Failures { //FIXME node0 still has a special role in some protocols for idx in 1..num_nodes { let faulty = { - let rand = rand::thread_rng().gen_range(0.0..1.0); + let rand = rand::rng().random_range(0.0..1.0); rand < config.faulty_nodes }; diff --git a/simba/src/ledger/conventional.rs b/simba/src/ledger/conventional.rs index ef718cb..57e1929 100644 --- a/simba/src/ledger/conventional.rs +++ b/simba/src/ledger/conventional.rs @@ -11,7 +11,7 @@ use derivative::Derivative; use crate::emit_event; use crate::events::{BlockEvent, Event}; -use crate::logic::{AccountState, Block, BlockId, Transaction, TransactionId, SIGNATURE_SIZE}; +use crate::logic::{AccountState, Block, BlockId, SIGNATURE_SIZE, Transaction, TransactionId}; use crate::node::NodeIndex; use asim::time::Time; diff --git a/simba/src/ledger/nakamoto/block.rs b/simba/src/ledger/nakamoto/block.rs index c1ccbeb..2245760 100644 --- a/simba/src/ledger/nakamoto/block.rs +++ b/simba/src/ledger/nakamoto/block.rs @@ -9,7 +9,7 @@ use derivative::Derivative; use crate::config::Difficulty; use crate::logic::{ - AccountId, AccountState, Block, BlockId, TransactionId, HASH_SIZE, NUM_SIZE, SIGNATURE_SIZE, + AccountId, AccountState, Block, BlockId, HASH_SIZE, NUM_SIZE, SIGNATURE_SIZE, TransactionId, }; #[derive(Derivative)] diff --git a/simba/src/ledger/nakamoto/mod.rs b/simba/src/ledger/nakamoto/mod.rs index eb0cfb2..04795ba 100644 --- a/simba/src/ledger/nakamoto/mod.rs +++ b/simba/src/ledger/nakamoto/mod.rs @@ -6,19 +6,19 @@ use asim::time::Time; use cow_tree::FrozenCowTree; -use rand::prelude::SliceRandom; - use crate::config::Difficulty; use crate::emit_event; use crate::events::{BlockEvent, Event}; use crate::logic::{ - AccountId, AccountState, Block, BlockId, Transaction, TransactionId, GENESIS_BLOCK, - GENESIS_HEIGHT, + AccountId, AccountState, Block, BlockId, GENESIS_BLOCK, GENESIS_HEIGHT, Transaction, + TransactionId, }; mod block; pub use block::NakamotoBlock; +use rand::prelude::IteratorRandom; + use super::{GlobalLedger, NodeLedger}; uint::construct_uint! { @@ -392,10 +392,10 @@ impl NakamotoNodeLedger { } } - let mut rng = rand::thread_rng(); - let block = longest_forks.choose(&mut rng).unwrap(); + let mut rng = rand::rng(); + let block = longest_forks.into_iter().choose(&mut rng).unwrap(); - (*block, max_length) + (block, max_length) } pub fn get_forks(&self) -> &HashMap { diff --git a/simba/src/ledger/nakamoto/tests.rs b/simba/src/ledger/nakamoto/tests.rs index 25c4f9d..66af743 100644 --- a/simba/src/ledger/nakamoto/tests.rs +++ b/simba/src/ledger/nakamoto/tests.rs @@ -1,7 +1,7 @@ use std::rc::Rc; use crate::config::Difficulty; -use crate::logic::{Block, Transaction, TransactionId, GENESIS_BLOCK, GENESIS_HEIGHT}; +use crate::logic::{Block, GENESIS_BLOCK, GENESIS_HEIGHT, Transaction, TransactionId}; use super::{NakamotoBlock, NakamotoNodeLedger}; diff --git a/simba/src/library.rs b/simba/src/library.rs index eece055..4d5ae4c 100644 --- a/simba/src/library.rs +++ b/simba/src/library.rs @@ -1,5 +1,5 @@ use std::collections::HashMap; -use std::fs::{read_dir, File}; +use std::fs::{File, read_dir}; use std::path::Path; use crate::{ diff --git a/simba/src/link.rs b/simba/src/link.rs index 93c756d..8d19b78 100644 --- a/simba/src/link.rs +++ b/simba/src/link.rs @@ -1,7 +1,7 @@ use crate::events::{Event, LinkEvent}; use crate::node::{Node, NodeData}; use crate::object::{Object, ObjectId}; -use crate::{emit_event, Message}; +use crate::{Message, emit_event}; use std::rc::Rc; diff --git a/simba/src/logic/gossip/mod.rs b/simba/src/logic/gossip/mod.rs index 97c3923..41d132a 100644 --- a/simba/src/logic/gossip/mod.rs +++ b/simba/src/logic/gossip/mod.rs @@ -8,12 +8,12 @@ use asim::time::{Duration, Time}; use derivative::Derivative; +use crate::Connectivity; use crate::logic::{BlockId, Client, GlobalLogic, Link, NodeLogic, TimeoutConfig}; use crate::message::MessageType; use crate::metrics::ChainMetrics; use crate::node::NodeIndex; use crate::object::ObjectId; -use crate::Connectivity; mod node; pub use node::GossipNodeLogic; diff --git a/simba/src/logic/nakamoto/block_generator.rs b/simba/src/logic/nakamoto/block_generator.rs index 801826c..5d9aae5 100644 --- a/simba/src/logic/nakamoto/block_generator.rs +++ b/simba/src/logic/nakamoto/block_generator.rs @@ -1,13 +1,13 @@ use std::cmp::Ordering; use std::rc::Rc; -use asim::time::{Duration, Time, START_TIME}; +use asim::time::{Duration, START_TIME, Time}; use crate::config::{ Difficulty, DifficultyAdjustment, IncrementalDifficultyAdjustment, NakamotoBlockGenerationConfig, }; -use crate::ledger::{DiffTarget, NakamotoBlock, MAX_DIFF_TARGET}; +use crate::ledger::{DiffTarget, MAX_DIFF_TARGET, NakamotoBlock}; use crate::logic::Block; use crate::node::NodeIndex; @@ -43,10 +43,11 @@ struct Ouroboros { impl BlockGenerator for ProofOfWork { fn should_create_block(&mut self, _idx: NodeIndex) -> bool { // TODO should be a function of the node's compute power + let mut rng = rand::rng(); let mut value = DiffTarget([0, 0, 0, 0]); for idx in 0..4 { - value.0[idx] = rand::rngs::OsRng.next_u64(); + value.0[idx] = rng.next_u64(); } value < self.difficulty_target diff --git a/simba/src/logic/nakamoto/mod.rs b/simba/src/logic/nakamoto/mod.rs index 556b534..e5161d7 100644 --- a/simba/src/logic/nakamoto/mod.rs +++ b/simba/src/logic/nakamoto/mod.rs @@ -4,25 +4,25 @@ use std::rc::Rc; use asim::time::{Duration, Time}; +use crate::RcCell; use crate::clients::Client; use crate::config::{Connectivity, NakamotoBlockGenerationConfig, TimeoutConfig}; use crate::ledger::{NakamotoBlock, NakamotoGlobalLedger}; use crate::link::Link; use crate::logic::{ - Block, BlockId, GlobalLogic, NodeLogic, Transaction, TransactionId, GENESIS_BLOCK, HASH_SIZE, - NUM_SIZE, SIGNATURE_SIZE, + Block, BlockId, GENESIS_BLOCK, GlobalLogic, HASH_SIZE, NUM_SIZE, NodeLogic, SIGNATURE_SIZE, + Transaction, TransactionId, }; use crate::message::MessageType; use crate::metrics::ChainMetrics; use crate::node::NodeIndex; use crate::object::ObjectId; -use crate::RcCell; mod node; pub use node::NakamotoNodeLogic; mod block_generator; -use block_generator::{make_block_generator, BlockGenerator}; +use block_generator::{BlockGenerator, make_block_generator}; #[derive(Clone, Debug)] pub enum NakamotoMessage { diff --git a/simba/src/logic/nakamoto/node.rs b/simba/src/logic/nakamoto/node.rs index 25c10be..2b6f23c 100644 --- a/simba/src/logic/nakamoto/node.rs +++ b/simba/src/logic/nakamoto/node.rs @@ -1,7 +1,7 @@ use crate::config::NakamotoBlockGenerationConfig; use crate::ledger::{NakamotoBlock, NakamotoGlobalLedger, NakamotoNodeLedger}; use crate::logic::{ - AccountId, Block, BlockId, NodeLogic, Transaction, TransactionId, GENESIS_BLOCK, + AccountId, Block, BlockId, GENESIS_BLOCK, NodeLogic, Transaction, TransactionId, }; use crate::node::Node; use crate::object::ObjectId; @@ -14,7 +14,7 @@ use std::collections::{HashMap, HashSet}; use std::rc::Rc; use super::NakamotoMessage; -use super::{make_block_generator, BlockGenerator}; +use super::{BlockGenerator, make_block_generator}; struct NodeState { local_ledger: NakamotoNodeLedger, diff --git a/simba/src/logic/pbft/mod.rs b/simba/src/logic/pbft/mod.rs index a7996df..3c5a494 100644 --- a/simba/src/logic/pbft/mod.rs +++ b/simba/src/logic/pbft/mod.rs @@ -2,16 +2,16 @@ use std::cell::RefCell; use std::collections::{BTreeMap, HashSet}; use std::rc::Rc; +use crate::RcCell; use crate::clients::Client; use crate::config::{Connectivity, TimeoutConfig}; use crate::ledger::{ConventionalBlock, ConventionalGlobalLedger, SlotNumber}; use crate::link::Link; -use crate::logic::{Block, GlobalLogic, NodeLogic, Transaction, GENESIS_BLOCK, SIGNATURE_SIZE}; +use crate::logic::{Block, GENESIS_BLOCK, GlobalLogic, NodeLogic, SIGNATURE_SIZE, Transaction}; use crate::message::MessageType; use crate::metrics::ChainMetrics; use crate::node::NodeIndex; use crate::object::ObjectId; -use crate::RcCell; use asim::time::{Duration, Time}; diff --git a/simba/src/logic/pbft/node.rs b/simba/src/logic/pbft/node.rs index 7dde993..dcbab44 100644 --- a/simba/src/logic/pbft/node.rs +++ b/simba/src/logic/pbft/node.rs @@ -1,7 +1,7 @@ use crate::ledger::{ ConventionalBlock, ConventionalGlobalLedger, ConventionalNodeLedger, SlotNumber, }; -use crate::logic::{Block, NodeLogic, Transaction, GENESIS_BLOCK}; +use crate::logic::{Block, GENESIS_BLOCK, NodeLogic, Transaction}; use crate::node::{Node, NodeIndex}; use crate::object::{Object, ObjectId}; use crate::{Message, RcCell}; diff --git a/simba/src/logic/snowball/node.rs b/simba/src/logic/snowball/node.rs index 279d79c..b4ba861 100644 --- a/simba/src/logic/snowball/node.rs +++ b/simba/src/logic/snowball/node.rs @@ -11,13 +11,14 @@ use rand::Rng; use super::SnowballMessage; -use rand::seq::SliceRandom; +use rand::seq::IteratorRandom; + use serde::{Deserialize, Serialize}; +use crate::Message; use crate::logic::{NodeLogic, Transaction}; use crate::node::Node; use crate::object::{Object, ObjectId}; -use crate::Message; #[derive(Debug, Serialize, Deserialize, Hash, PartialEq, Eq, Clone, Copy, PartialOrd, Ord)] pub enum Color { @@ -84,13 +85,15 @@ impl NodeState { log::trace!("Running SnowballNodeState:start_next_sample()"); // self.current_candidate is col in paper, not using any col_0 for initial value let nodes = node.get_peers(); //get all nodes in network - let mut rng = &mut rand::thread_rng(); + let mut rng = &mut rand::rng(); assert!(sample_size as usize <= nodes.len()); - let sampled_nodes = nodes.choose_multiple(&mut rng, sample_size as usize); + let sampled_nodes = nodes + .into_iter() + .choose_multiple(&mut rng, sample_size as usize); for peer_id in sampled_nodes { node.send_to( - peer_id, + &peer_id, Message::Snowball(SnowballMessage::Query(self.current_candidate)), ); } @@ -240,8 +243,8 @@ impl SnowballNodeLogic { log::debug!("Created SnowballNodeLogic"); // generate a random number between 0 and 3 - let mut rng = rand::thread_rng(); - let random_number: u8 = rng.gen_range(0..=2); + let mut rng = rand::rng(); + let random_number: u8 = rng.random_range(0..=2); let current_candidate = match random_number { 1 => Color::Red, 2 => Color::Blue, diff --git a/simba/src/node.rs b/simba/src/node.rs index 462f3d3..f82d842 100644 --- a/simba/src/node.rs +++ b/simba/src/node.rs @@ -6,12 +6,12 @@ use asim::network::NetworkMessage; use serde::{Deserialize, Serialize}; +use crate::Message; use crate::clients::Client; use crate::link::Bandwidth; use crate::logic::{AccountId, NodeLogic, Transaction}; use crate::object::ObjectId; use crate::stats::NodeStatsCollector; -use crate::Message; pub type NodeIndex = u32; diff --git a/simba/src/runners.rs b/simba/src/runners.rs index 9011f18..4b91ef5 100644 --- a/simba/src/runners.rs +++ b/simba/src/runners.rs @@ -459,22 +459,16 @@ mod tests { #[test] fn interval_generator() { let mut params = vec![]; - params.push(( - ParameterType::NumClients, - Interval::LinearInt { - start: 10, - end: 60, - step_size: 10, - }, - )); - params.push(( - ParameterType::NumMiningNodes, - Interval::LinearFloat { - start: 0.2, - end: 1.0, - step_size: 0.2, - }, - )); + params.push((ParameterType::NumClients, Interval::LinearInt { + start: 10, + end: 60, + step_size: 10, + })); + params.push((ParameterType::NumMiningNodes, Interval::LinearFloat { + start: 0.2, + end: 1.0, + step_size: 0.2, + })); let generator = IntervalGenerator::new(params).unwrap(); let first_step = generator.get_step(0).unwrap(); diff --git a/simba/src/scene.rs b/simba/src/scene.rs index ad47c5e..a4dfb12 100644 --- a/simba/src/scene.rs +++ b/simba/src/scene.rs @@ -3,7 +3,7 @@ use crate::events::{Event, LinkEvent, NodeEvent}; use crate::link::Link; use crate::node::{Node, NodeIndex}; use crate::object::{Object, ObjectId, ObjectMap}; -use crate::{emit_event, RcCell}; +use crate::{RcCell, emit_event}; use std::cell::Ref; use std::cell::RefCell; diff --git a/simba/src/simulation.rs b/simba/src/simulation.rs index e49906e..5bcec45 100644 --- a/simba/src/simulation.rs +++ b/simba/src/simulation.rs @@ -2,21 +2,21 @@ use std::cmp::Ordering; use std::fs::File; use std::rc::Rc; use std::sync::atomic::{AtomicU64, Ordering as AtomicOrdering}; -use std::sync::{mpsc, Arc, OnceLock}; +use std::sync::{Arc, OnceLock, mpsc}; use dashmap::DashMap; use instant::Instant; -use asim::time::{Duration, Time, START_TIME}; +use asim::time::{Duration, START_TIME, Time}; use parking_lot::{Condvar, Mutex}; use crate::clients::Client; use crate::config::{Connectivity, NetworkConfiguration, ProtocolConfiguration, TimeoutConfig}; use crate::events::{ - BlockEvent, Command, Event, LinkEvent, NodeEvent, OpRequest, OpResult, StatisticsEvent, - EVENT_HANDLER, + BlockEvent, Command, EVENT_HANDLER, Event, LinkEvent, NodeEvent, OpRequest, OpResult, + StatisticsEvent, }; use crate::failures::Failures; use crate::link::create_link; @@ -26,7 +26,7 @@ use crate::logic::{ SnowballGlobalLogic, SpeedTestGlobalLogic, }; use crate::message::MessageType; -use crate::node::{create_node, Node, NodeIndex}; +use crate::node::{Node, NodeIndex, create_node}; use crate::object::{Object, ObjectId}; use crate::scene::Scene; use crate::stats::{GlobalStatistics, NodeStatistics, Statistics}; @@ -727,7 +727,7 @@ impl SimulationInner { } } NetworkConfiguration::PreDefined { - clients: ref client_cfgs, + clients: client_cfgs, nodes: node_cfgs, links: link_cfgs, } => { @@ -1066,7 +1066,10 @@ impl SimulationInner { // Slow down if simulation was too fast if real_elapsed < min_time { let sleep_time = min_time - real_elapsed; - log::trace!("Elapsed time was {real_elapsed:?}, but min time is {min_time:?} because simulation advanced by {virtual_elapsed:?}. Sleeping for {}us", (sleep_time.as_micros() as f64)/1000.0); + log::trace!( + "Elapsed time was {real_elapsed:?}, but min time is {min_time:?} because simulation advanced by {virtual_elapsed:?}. Sleeping for {}us", + (sleep_time.as_micros() as f64) / 1000.0 + ); std::thread::sleep(sleep_time); } } diff --git a/simba/src/stats.rs b/simba/src/stats.rs index 71d27b7..d063c5d 100644 --- a/simba/src/stats.rs +++ b/simba/src/stats.rs @@ -92,7 +92,7 @@ impl Statistics { let mut stats_file = self.stats_file.borrow_mut().take(); // Create CSV header - if let Some(ref mut stats_file) = &mut stats_file { + if let &mut Some(ref mut stats_file) = &mut stats_file { log::debug!("Writing statistics to file"); let global_stats = GlobalStatistics::default(); @@ -126,7 +126,7 @@ impl Statistics { global_stats += data; } - if let Some(ref mut stats_file) = &mut stats_file { + if let &mut Some(ref mut stats_file) = &mut stats_file { let global_stats = GlobalStatistics::default(); let mut values = vec![asim::time::now().to_millis().to_string()]; diff --git a/visualizer/Cargo.toml b/visualizer/Cargo.toml index f1cc5d9..6dd9a37 100644 --- a/visualizer/Cargo.toml +++ b/visualizer/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "simba-visualizer" version = "0.1.0" -edition = "2021" +edition = "2024" license = "MIT" description = "Simulating Byzantine Fault-Tolerant Applications" diff --git a/visualizer/src/graphics/camera.rs b/visualizer/src/graphics/camera.rs index ea1be73..cd19d19 100644 --- a/visualizer/src/graphics/camera.rs +++ b/visualizer/src/graphics/camera.rs @@ -1,4 +1,4 @@ -use super::{BoundingBox, Renderer, MAX_Z_INDEX}; +use super::{BoundingBox, MAX_Z_INDEX, Renderer}; use std::sync::Arc; diff --git a/visualizer/src/graphics/circle.rs b/visualizer/src/graphics/circle.rs index 2815ea8..e0e6767 100644 --- a/visualizer/src/graphics/circle.rs +++ b/visualizer/src/graphics/circle.rs @@ -1,5 +1,5 @@ use crate::graphics::{ - BoundingBox, Drawable, DrawableId, Material, Program, Renderer, Vertex, MAX_Z_INDEX, + BoundingBox, Drawable, DrawableId, MAX_Z_INDEX, Material, Program, Renderer, Vertex, }; use std::sync::Arc; diff --git a/visualizer/src/graphics/line.rs b/visualizer/src/graphics/line.rs index 60bebd5..7a5c116 100644 --- a/visualizer/src/graphics/line.rs +++ b/visualizer/src/graphics/line.rs @@ -1,4 +1,4 @@ -use super::{BoundingBox, Drawable, DrawableId, Material, Program, Renderer, Vertex, MAX_Z_INDEX}; +use super::{BoundingBox, Drawable, DrawableId, MAX_Z_INDEX, Material, Program, Renderer, Vertex}; use glam::{Mat4, Vec2, Vec3, Vec4}; diff --git a/visualizer/src/graphics/mod.rs b/visualizer/src/graphics/mod.rs index 518fdaa..31f9a97 100644 --- a/visualizer/src/graphics/mod.rs +++ b/visualizer/src/graphics/mod.rs @@ -28,8 +28,8 @@ use winit::window::Window; use wgpu::util::DeviceExt; -use std::sync::atomic::AtomicU64; use std::sync::Arc; +use std::sync::atomic::AtomicU64; use glam::{Mat4, Vec2}; diff --git a/visualizer/src/graphics/rectangle.rs b/visualizer/src/graphics/rectangle.rs index 783e5ad..f6ba362 100644 --- a/visualizer/src/graphics/rectangle.rs +++ b/visualizer/src/graphics/rectangle.rs @@ -1,5 +1,5 @@ use crate::graphics::{ - BoundingBox, Drawable, DrawableId, Material, Program, Renderer, Vertex, MAX_Z_INDEX, + BoundingBox, Drawable, DrawableId, MAX_Z_INDEX, Material, Program, Renderer, Vertex, }; use std::sync::Arc; diff --git a/visualizer/src/graphics/render_loop.rs b/visualizer/src/graphics/render_loop.rs index 4db9e29..0757bab 100644 --- a/visualizer/src/graphics/render_loop.rs +++ b/visualizer/src/graphics/render_loop.rs @@ -1,6 +1,6 @@ use std::process::exit; -use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; +use std::sync::atomic::{AtomicBool, Ordering}; use instant::Instant; @@ -229,18 +229,15 @@ impl<'a> RenderLoop<'a> { .first() .expect("No supported texture format found"); - surface.configure( - device, - &SurfaceConfiguration { - usage: TextureUsages::RENDER_ATTACHMENT, - format, - width: size.width, - height: size.height, - alpha_mode: wgpu::CompositeAlphaMode::Auto, - present_mode: wgpu::PresentMode::AutoVsync, - view_formats: vec![], - desired_maximum_frame_latency: 2, - }, - ) + surface.configure(device, &SurfaceConfiguration { + usage: TextureUsages::RENDER_ATTACHMENT, + format, + width: size.width, + height: size.height, + alpha_mode: wgpu::CompositeAlphaMode::Auto, + present_mode: wgpu::PresentMode::AutoVsync, + view_formats: vec![], + desired_maximum_frame_latency: 2, + }) } } diff --git a/visualizer/src/lib.rs b/visualizer/src/lib.rs index 102e3df..e21f582 100644 --- a/visualizer/src/lib.rs +++ b/visualizer/src/lib.rs @@ -1,4 +1,3 @@ -#![feature(async_closure)] #![allow(clippy::bool_to_int_with_if)] #![allow(clippy::arc_with_non_send_sync)] diff --git a/visualizer/src/scene/node.rs b/visualizer/src/scene/node.rs index 1f96cd2..b97964b 100644 --- a/visualizer/src/scene/node.rs +++ b/visualizer/src/scene/node.rs @@ -1,8 +1,8 @@ use simba::{NodeIndex, ObjectId as SimObjectId, Simulation}; use std::collections::HashMap; -use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; +use std::sync::atomic::{AtomicBool, Ordering}; use crate::graphics::{CircleStyle, Drawable, Graphics}; use crate::scene::ObjectId; diff --git a/visualizer/src/scene/scenes.rs b/visualizer/src/scene/scenes.rs index 6d9ae3d..a13d643 100644 --- a/visualizer/src/scene/scenes.rs +++ b/visualizer/src/scene/scenes.rs @@ -1,8 +1,8 @@ -use std::collections::{hash_map, HashMap}; -use std::sync::atomic::{AtomicU64, Ordering}; +use std::collections::{HashMap, hash_map}; use std::sync::Arc; +use std::sync::atomic::{AtomicU64, Ordering}; -use simba::{BlockEvent, BlockId, LinkEvent, Location, NodeEvent, Simulation, GENESIS_BLOCK}; +use simba::{BlockEvent, BlockId, GENESIS_BLOCK, LinkEvent, Location, NodeEvent, Simulation}; use glam::Vec2; diff --git a/visualizer/src/ui/render_loop.rs b/visualizer/src/ui/render_loop.rs index 1e7fb9d..d53fb13 100644 --- a/visualizer/src/ui/render_loop.rs +++ b/visualizer/src/ui/render_loop.rs @@ -3,12 +3,12 @@ use std::sync::Mutex as StdMutex; use winit::dpi::PhysicalPosition; -use iced::keyboard::{key, Event as KeyboardEvent, Key}; +use iced::keyboard::{Event as KeyboardEvent, Key, key}; use iced::mouse::{ Button as MouseButton, Cursor, Event as MouseEvent, ScrollDelta as MouseScrollDelta, }; use iced::{Event, Font, Pixels}; -use iced_runtime::{program, Debug}; +use iced_runtime::{Debug, program}; use iced_wgpu::graphics::Viewport; use iced_winit::conversion; diff --git a/web-gui/Cargo.toml b/web-gui/Cargo.toml index 291f836..d31aac7 100644 --- a/web-gui/Cargo.toml +++ b/web-gui/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "simba-web-gui" version = "0.1.0" -edition = "2021" +edition = "2024" license = "MIT" description = "Simulating Byzantine Fault-Tolerant Applications" #forced-target = "wasm32-unknown-unknown" @@ -13,7 +13,7 @@ crate-type = ["cdylib"] tokio = { version="1", default-features=false, features=["rt", "sync", "rt-multi-thread"] } simba-visualizer = { path="../visualizer", features=["wasm"] } simba = { path="../simba", features=["wasm"] } -getrandom = { version="0.2", features=["js"] } +getrandom = { workspace=true, features=["wasm_js"] } wgpu = { workspace=true, features=["spirv", "webgl"] } winit = { workspace=true } iced_winit = "0.12"