diff --git a/Cargo.lock b/Cargo.lock index 59e741cf2f..bac742953a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -177,9 +177,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "arbitrary" @@ -238,7 +238,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "synstructure", ] @@ -250,7 +250,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -274,16 +274,16 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "async-broadcast" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -337,7 +337,7 @@ dependencies = [ "async-trait", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "tokio", ] @@ -415,7 +415,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "event-listener-strategy", "pin-project-lite", ] @@ -442,7 +442,7 @@ dependencies = [ "async-task", "blocking", "cfg-if", - "event-listener 5.3.1", + "event-listener 5.4.0", "futures-lite", "rustix", "tracing", @@ -456,7 +456,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -476,7 +476,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4042078ea593edffc452eef14e99fdb2b120caa4ad9618bcdeabc4a023b98740" dependencies = [ "futures", - "pin-project 1.1.7", + "pin-project 1.1.8", "tokio", ] @@ -517,7 +517,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -528,13 +528,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[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.90", + "syn 2.0.96", ] [[package]] @@ -546,7 +546,7 @@ dependencies = [ "async-compression", "crc32fast", "futures-lite", - "pin-project 1.1.7", + "pin-project 1.1.8", "thiserror 1.0.69", "tokio", "tokio-util", @@ -584,9 +584,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-config" -version = "1.5.11" +version = "1.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d1c2c88936a73c699225d0bc00684a534166b0cebc2659c3cdf08de8edc64c" +checksum = "c03a50b30228d3af8865ce83376b4e99e1ffa34728220fe2860e4df0bb5278d6" dependencies = [ "aws-credential-types", "aws-runtime", @@ -637,24 +637,23 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8478a5c29ead3f3be14aff8a202ad965cf7da6856860041bfca271becf8ba48b" +checksum = "923ded50f602b3007e5e63e3f094c479d9c8a9b42d7f4034e4afe456aa48bfd2" dependencies = [ "bindgen", "cc", "cmake", "dunce", "fs_extra", - "libc", "paste", ] [[package]] name = "aws-runtime" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300a12520b4e6d08b73f77680f12c16e8ae43250d55100e0b2be46d78da16a48" +checksum = "b16d1aa50accc11a4b4d5c50f7fb81cc0cf60328259c587d0e6b0f11385bde46" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -678,9 +677,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.66.0" +version = "1.68.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "154488d16ab0d627d15ab2832b57e68a16684c8c902f14cb8a75ec933fc94852" +checksum = "bc5ddf1dc70287dc9a2f953766a1fe15e3e74aef02fd1335f2afa475c9b4f4fc" dependencies = [ "aws-credential-types", "aws-runtime", @@ -712,9 +711,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.51.0" +version = "1.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74995133da38f109a0eb8e8c886f9e80c713b6e9f2e6e5a6a1ba4450ce2ffc46" +checksum = "1605dc0bf9f0a4b05b451441a17fcb0bda229db384f23bf5cead3adbab0664ac" dependencies = [ "aws-credential-types", "aws-runtime", @@ -734,9 +733,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.52.0" +version = "1.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7062a779685cbf3b2401eb36151e2c6589fd5f3569b8a6bc2d199e5aaa1d059" +checksum = "59f3f73466ff24f6ad109095e0f3f2c830bfb4cd6c8b12f744c8e61ebf4d3ba1" dependencies = [ "aws-credential-types", "aws-runtime", @@ -756,9 +755,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.52.0" +version = "1.54.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299dae7b1dc0ee50434453fa5a229dc4b22bd3ee50409ff16becf1f7346e0193" +checksum = "861d324ef69247c6f3c6823755f408a68877ffb1a9afaff6dd8b0057c760de60" dependencies = [ "aws-credential-types", "aws-runtime", @@ -808,9 +807,9 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aa8ff1492fd9fb99ae28e8467af0dbbb7c31512b16fabf1a0f10d7bb6ef78bb" +checksum = "427cb637d15d63d6f9aae26358e1c9a9c09d5aa490d64b09354c8217cfef0f28" dependencies = [ "futures-util", "pin-project-lite", @@ -891,9 +890,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.7.5" +version = "1.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431a10d0e07e09091284ef04453dae4069283aa108d209974d67e77ae1caa658" +checksum = "a05dd41a70fc74051758ee75b5c4db2c0ca070ed9229c3df50e9475cda1cb985" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -935,9 +934,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.2.10" +version = "1.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecbf4d5dfb169812e2b240a4350f15ad3c6b03a54074e5712818801615f2dc5" +checksum = "38ddc9bd6c28aeb303477170ddd183760a956a03e083b3902a990238a7e3792d" dependencies = [ "base64-simd", "bytes 1.9.0", @@ -1154,7 +1153,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1167,7 +1166,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.90", + "syn 2.0.96", "which 4.4.2", ] @@ -1209,9 +1208,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" dependencies = [ "serde", ] @@ -1286,12 +1285,12 @@ dependencies = [ "http-body-util", "hyper 1.5.2", "hyper-named-pipe", - "hyper-rustls 0.27.4", + "hyper-rustls 0.27.5", "hyper-util", "hyperlocal", "log 0.4.22", "pin-project-lite", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-native-certs 0.7.3", "rustls-pemfile 2.2.0", "rustls-pki-types", @@ -1321,9 +1320,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.11.1" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786a307d683a5bf92e6fd5fd69a7eb613751668d1d8d67d802846dfe367c62c8" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ "memchr", "regex-automata 0.4.9", @@ -1338,9 +1337,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.20.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] name = "byteorder" @@ -1527,14 +1526,14 @@ dependencies = [ [[package]] name = "cargo-config2" -version = "0.1.29" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1124054becb9262cc15c5e96e82f0d782f2aed3a3034d1f71a6385a6fa9e9595" +checksum = "6dc3749a36e0423c991f1e7a3e4ab0c36a1f489658313db4b187d401d79cc461" dependencies = [ - "home", "serde", "serde_derive", "toml_edit", + "windows-sys 0.59.0", ] [[package]] @@ -1571,7 +1570,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.8", + "thiserror 2.0.11", ] [[package]] @@ -1601,9 +1600,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.4" +version = "1.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf" +checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" dependencies = [ "jobserver", "libc", @@ -1696,9 +1695,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.23" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" +checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" dependencies = [ "clap_builder", "clap_derive", @@ -1716,9 +1715,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.23" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" +checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" dependencies = [ "anstream", "anstyle", @@ -1728,23 +1727,23 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.40" +version = "4.5.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2e663e3e3bed2d32d065a8404024dad306e699a04263ec59919529f803aee9" +checksum = "33a7e468e750fa4b6be660e8b5651ad47372e8fb114030b594c2d75d48c5ffd0" dependencies = [ "clap", ] [[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 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2402,7 +2401,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2438,7 +2437,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2462,7 +2461,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2473,7 +2472,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2587,7 +2586,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2608,7 +2607,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2618,7 +2617,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2631,7 +2630,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2651,7 +2650,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "unicode-xid", ] @@ -2784,7 +2783,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -2841,7 +2840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf3ad5e2193e855cdd101d6d4ad09f0b3fa9aa5bd5169f483b4accd6eef96cfe" dependencies = [ "futures-core", - "pin-project 1.1.7", + "pin-project 1.1.8", ] [[package]] @@ -2927,7 +2926,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -3030,7 +3029,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -3051,14 +3050,14 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "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 0.4.22", "regex", @@ -3079,9 +3078,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", @@ -3131,9 +3130,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", @@ -3146,7 +3145,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "pin-project-lite", ] @@ -3317,9 +3316,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" [[package]] name = "font-kit" @@ -3327,7 +3326,7 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b64b34f4efd515f905952d91bc185039863705592c0c53ae6d979805dd154520" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "byteorder", "core-foundation 0.9.4", "core-graphics", @@ -3373,7 +3372,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -3435,7 +3434,7 @@ checksum = "1458c6e22d36d61507034d5afecc64f105c1d39712b7ac6ec3b352c423f715cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -3527,9 +3526,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ "fastrand", "futures-core", @@ -3546,7 +3545,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -3615,7 +3614,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "debugid", "fxhash", "serde", @@ -3641,9 +3640,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb8bc4c28d15ade99c7e90b219f30da4be5c88e586277e8cbe886beeb868ab2" +checksum = "e8c8444bc9d71b935156cc0ccab7f622180808af7867b1daae6547d773591703" dependencies = [ "typenum", ] @@ -3680,7 +3679,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -3731,14 +3730,14 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "goldenfile" @@ -3780,8 +3779,8 @@ dependencies = [ "poem", "prometheus", "regex", - "reqwest 0.12.9", - "rustls 0.23.20", + "reqwest 0.12.12", + "rustls 0.23.21", "serde", "sozu-command-lib", "sozu-lib", @@ -3833,7 +3832,7 @@ dependencies = [ "colored", "derive_more 1.0.0", "dirs 5.0.1", - "env_logger 0.11.5", + "env_logger 0.11.6", "futures-util", "glob", "golem-client", @@ -3861,7 +3860,7 @@ dependencies = [ "rand", "redis", "regex", - "reqwest 0.12.9", + "reqwest 0.12.12", "serde", "serde_json", "serde_json_path", @@ -3905,7 +3904,7 @@ dependencies = [ "golem-wasm-rpc", "http 1.2.0", "relative-path", - "reqwest 0.12.9", + "reqwest 0.12.12", "serde", "serde_json", "serde_yaml", @@ -3952,7 +3951,7 @@ dependencies = [ "serde_yaml", "sqlx", "test-r", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "toml", "tonic", @@ -3983,7 +3982,7 @@ dependencies = [ "prometheus", "serde", "test-r", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-stream", "tonic", @@ -4024,7 +4023,7 @@ dependencies = [ "sqlx", "tap", "test-r", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-stream", "tokio-util", @@ -4061,7 +4060,7 @@ dependencies = [ "poem-openapi", "prost 0.13.4", "prost-types 0.13.4", - "reqwest 0.12.9", + "reqwest 0.12.12", "sanitize-filename", "serde", "serde_json", @@ -4071,7 +4070,7 @@ dependencies = [ "test-r", "testcontainers", "testcontainers-modules", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-stream", "tokio-util", @@ -4170,14 +4169,14 @@ dependencies = [ "hyper 1.5.2", "lazy_static 1.5.0", "num-traits", - "pin-project 1.1.7", + "pin-project 1.1.8", "poem", "poem-openapi", "prometheus", "proptest", "prost-types 0.13.4", "rand", - "reqwest 0.12.9", + "reqwest 0.12.12", "serde", "serde_json", "sha2", @@ -4186,7 +4185,7 @@ dependencies = [ "test-r", "testcontainers", "testcontainers-modules", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-stream", "tokio-util", @@ -4220,11 +4219,11 @@ dependencies = [ "kube", "prometheus", "prost 0.13.4", - "rustls 0.23.20", + "rustls 0.23.21", "serde", "serde_json", "test-r", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-stream", "tonic", @@ -4363,7 +4362,7 @@ dependencies = [ "serde_json", "serde_yaml", "shlex", - "syn 2.0.90", + "syn 2.0.96", "tempfile", "test-r", "tokio", @@ -4377,9 +4376,9 @@ dependencies = [ [[package]] name = "golem-wit" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c54c03d2a2c3b54e1bc733115000c69cc027b0a0dd269917b9a7acab37beff" +checksum = "cf53fc25db491f96c480d7f195175f6da5f18dcc6ef548d04b2ae648b7796bbf" [[package]] name = "golem-worker-executor" @@ -4429,7 +4428,7 @@ dependencies = [ "aws-sdk-s3", "axum", "bincode", - "bitflags 2.6.0", + "bitflags 2.7.0", "bytes 1.9.0", "cap-fs-ext", "cap-std", @@ -4477,7 +4476,7 @@ dependencies = [ "rand", "redis", "ringbuf", - "rustls 0.23.20", + "rustls 0.23.21", "serde", "serde_json", "sqlx", @@ -4486,7 +4485,7 @@ dependencies = [ "test-r", "testcontainers", "testcontainers-modules", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-rustls 0.26.1", "tokio-stream", @@ -4611,7 +4610,7 @@ dependencies = [ "test-r", "testcontainers", "testcontainers-modules", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-stream", "tokio-util", @@ -4744,11 +4743,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -5013,7 +5012,7 @@ dependencies = [ "headers", "http 1.2.0", "hyper 1.5.2", - "hyper-rustls 0.27.4", + "hyper-rustls 0.27.5", "hyper-util", "pin-project-lite", "rustls-native-certs 0.7.3", @@ -5055,16 +5054,16 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.4" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6884a48c6826ec44f524c7456b163cebe9e55a18d7b5e307cb4f100371cc767" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", "http 1.2.0", "hyper 1.5.2", "hyper-util", "log 0.4.22", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", @@ -5274,7 +5273,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -5407,7 +5406,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "crossterm", "dyn-clone", "fuzzy-matcher", @@ -5444,7 +5443,7 @@ dependencies = [ "plotters", "poem", "rand", - "reqwest 0.12.9", + "reqwest 0.12.12", "serde", "serde_json", "test-r", @@ -5472,9 +5471,12 @@ dependencies = [ [[package]] name = "inventory" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767" +checksum = "3b31349d02fe60f80bbbab1a9402364cad7460626d6030494b08ac4a2075bf81" +dependencies = [ + "rustversion", +] [[package]] name = "io-extras" @@ -5526,11 +5528,11 @@ dependencies = [ [[package]] name = "iso8601-timestamp" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef28a96196d23eb2125c3ea7fef3c7de8fa5e03dfe354d2041824289ff696377" +checksum = "b43b2015ede53eeef1c023e27f540a39841d139044483641d038a975abd6603d" dependencies = [ - "generic-array 1.1.1", + "generic-array 1.2.0", "serde", "time", ] @@ -5614,9 +5616,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -5647,15 +5649,15 @@ dependencies = [ [[package]] name = "jsonpath-rust" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a61b87f6a55cc6c28fed5739dd36b9642321ce63e4a5e4a4715d69106f4a10" +checksum = "0c00ae348f9f8fd2d09f82a98ca381c60df9e0820d8d79fce43e649b4dc3128b" dependencies = [ "pest", "pest_derive", "regex", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] @@ -5717,7 +5719,7 @@ dependencies = [ "log 0.4.22", "secret-service", "security-framework 2.11.1", - "security-framework 3.1.0", + "security-framework 3.2.0", "windows-sys 0.59.0", "zbus", ] @@ -5765,20 +5767,20 @@ dependencies = [ "http-body-util", "hyper 1.5.2", "hyper-http-proxy", - "hyper-rustls 0.27.4", + "hyper-rustls 0.27.5", "hyper-timeout", "hyper-util", "jsonpath-rust", "k8s-openapi", "kube-core", "pem", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pemfile 2.2.0", "secrecy 0.10.3", "serde", "serde_json", "serde_yaml", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-util", "tower 0.5.2", @@ -5801,7 +5803,7 @@ dependencies = [ "serde", "serde-value", "serde_json", - "thiserror 2.0.8", + "thiserror 2.0.11", ] [[package]] @@ -5814,7 +5816,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -5836,10 +5838,10 @@ dependencies = [ "k8s-openapi", "kube-client", "parking_lot", - "pin-project 1.1.7", + "pin-project 1.1.8", "serde", "serde_json", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tokio-util", "tracing", @@ -5880,9 +5882,9 @@ checksum = "57eeaed462e96d277051c219bf5e2ed22aedf7705d8945d2decb8b2db8fb954d" [[package]] name = "libc" -version = "0.2.168" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libdbus-sys" @@ -5915,7 +5917,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "libc", "redox_syscall 0.5.8", ] @@ -5937,15 +5939,15 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "libc", ] [[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 = "litemap" @@ -5999,7 +6001,7 @@ dependencies = [ "proc-macro2", "quote", "regex-syntax 0.8.5", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -6122,7 +6124,7 @@ checksum = "23c9b935fbe1d6cbd1dac857b54a688145e2d93f48db36010514d0f612d0ad67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -6143,9 +6145,9 @@ dependencies = [ [[package]] name = "minijinja" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c37e1b517d1dcd0e51dc36c4567b9d5a29262b3ec8da6cb5d35e27a8fb529b5" +checksum = "212b4cab3aad057bc6e611814472905546c533295723b9e26a31c7feb19a8e65" dependencies = [ "serde", ] @@ -6158,9 +6160,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", "simd-adler32", @@ -6255,7 +6257,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "cfg-if", "libc", ] @@ -6266,7 +6268,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "cfg-if", "cfg_aliases", "libc", @@ -6446,9 +6448,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 = [ "crc32fast", "hashbrown 0.15.2", @@ -6472,7 +6474,7 @@ dependencies = [ "oci-spec", "olpc-cjson", "regex", - "reqwest 0.12.9", + "reqwest 0.12.12", "serde", "serde_json", "sha2", @@ -6495,7 +6497,7 @@ dependencies = [ "serde_json", "strum", "strum_macros", - "thiserror 2.0.8", + "thiserror 2.0.11", ] [[package]] @@ -6602,7 +6604,7 @@ version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "cfg-if", "foreign-types 0.3.2", "libc", @@ -6619,7 +6621,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -6709,9 +6711,9 @@ dependencies = [ [[package]] name = "opentelemetry-semantic-conventions" -version = "0.16.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cefe0543875379e47eb5f1e68ff83f45cc41366a92dfd0d073d513bf68e9a05" +checksum = "bc1b6902ff63b32ef6c489e8048c5e253e2e4a803ea3ea7e783914536eb15c52" [[package]] name = "opentelemetry_sdk" @@ -6896,7 +6898,7 @@ dependencies = [ "regex", "regex-syntax 0.8.5", "structmeta", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -6993,7 +6995,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -7028,7 +7030,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.8", + "thiserror 2.0.11", "ucd-trie", ] @@ -7052,7 +7054,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -7078,9 +7080,9 @@ dependencies = [ [[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", @@ -7088,9 +7090,9 @@ 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", @@ -7098,22 +7100,22 @@ dependencies = [ [[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.90", + "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", ] @@ -7129,11 +7131,11 @@ dependencies = [ [[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 1.1.7", + "pin-project-internal 1.1.8", ] [[package]] @@ -7149,20 +7151,20 @@ dependencies = [ [[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.90", + "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" @@ -7266,9 +7268,9 @@ dependencies = [ [[package]] name = "png" -version = "0.17.15" +version = "0.17.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67582bd5b65bdff614270e2ea89a1cf15bef71245cc1e5f7ea126977144211d" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -7279,9 +7281,9 @@ dependencies = [ [[package]] name = "poem" -version = "3.1.5" +version = "3.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671795ac42dc4ea9210e44942e8e9844c16541d799499aec2747ab8d4fef50ef" +checksum = "d32edf6781dc01de285cf2b1bd5dc5a3fd0d96aa5c4680e356c0462fab8f793a" dependencies = [ "base64 0.22.1", "bytes 1.9.0", @@ -7316,11 +7318,11 @@ dependencies = [ "sse-codec", "sync_wrapper 1.0.2", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", "tokio", "tokio-stream", - "tokio-tungstenite 0.23.1", + "tokio-tungstenite 0.25.0", "tokio-util", "tracing", "wildmatch", @@ -7335,14 +7337,14 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "poem-openapi" -version = "5.1.4" +version = "5.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d3c2262b16245f8bfc9b53fd6d7f8262251ecc8fa37db337bbf37b00eb18d7" +checksum = "fd2bcaa221d5d64e6830ba4aeaa95eb1421dbe0e5bf55e74509bdacc13a8a04d" dependencies = [ "base64 0.22.1", "bytes 1.9.0", @@ -7361,7 +7363,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "serde_yaml", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", "tokio", "url", @@ -7382,7 +7384,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.90", + "syn 2.0.96", "thiserror 1.0.69", ] @@ -7526,12 +7528,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.25" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -7608,14 +7610,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -7628,7 +7630,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "version_check", "yansi", ] @@ -7639,7 +7641,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "hex", "lazy_static 1.5.0", "procfs-core", @@ -7652,7 +7654,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "hex", ] @@ -7681,7 +7683,7 @@ checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", - "bitflags 2.6.0", + "bitflags 2.7.0", "lazy_static 1.5.0", "num-traits", "rand", @@ -7740,7 +7742,7 @@ dependencies = [ "prost 0.12.6", "prost-types 0.12.6", "regex", - "syn 2.0.90", + "syn 2.0.96", "tempfile", ] @@ -7760,7 +7762,7 @@ dependencies = [ "prost 0.13.4", "prost-types 0.13.4", "regex", - "syn 2.0.90", + "syn 2.0.96", "tempfile", ] @@ -7774,7 +7776,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -7787,7 +7789,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -7924,9 +7926,9 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.0", - "rustls 0.23.20", + "rustls 0.23.21", "socket2", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -7942,10 +7944,10 @@ dependencies = [ "rand", "ring", "rustc-hash 2.1.0", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pki-types", "slab", - "thiserror 2.0.8", + "thiserror 2.0.11", "tinyvec", "tracing", "web-time", @@ -7967,9 +7969,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", ] @@ -8112,7 +8114,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", ] [[package]] @@ -8238,9 +8240,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.9" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "async-compression", "base64 0.22.1", @@ -8254,7 +8256,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.5.2", - "hyper-rustls 0.27.4", + "hyper-rustls 0.27.5", "hyper-tls", "hyper-util", "ipnet", @@ -8267,7 +8269,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", @@ -8280,6 +8282,7 @@ dependencies = [ "tokio-rustls 0.26.1", "tokio-socks", "tokio-util", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", @@ -8352,7 +8355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ "base64 0.21.7", - "bitflags 2.6.0", + "bitflags 2.7.0", "serde", "serde_derive", ] @@ -8446,11 +8449,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.42" +version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "errno", "itoa", "libc", @@ -8487,9 +8490,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.20" +version = "0.23.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" +checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" dependencies = [ "aws-lc-rs", "log 0.4.22", @@ -8535,7 +8538,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.1.0", + "security-framework 3.2.0", ] [[package]] @@ -8589,9 +8592,9 @@ dependencies = [ [[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 = "rusty-fork" @@ -8670,7 +8673,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -8761,7 +8764,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -8770,11 +8773,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -8783,9 +8786,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -8802,9 +8805,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -8821,13 +8824,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -8838,14 +8841,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ "itoa", "memchr", @@ -8900,7 +8903,7 @@ checksum = "aafbefbe175fa9bf03ca83ef89beecff7d2a95aaacd5732325b90ac8c3bd7b90" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -8930,7 +8933,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -8956,9 +8959,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.11.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ "base64 0.22.1", "chrono", @@ -8974,14 +8977,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.11.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -9152,9 +9155,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 = "sized-chunks" @@ -9208,9 +9211,9 @@ dependencies = [ [[package]] name = "sozu-command-lib" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e9d5d2fc4aa9d3778fc73db40b660b40423afbf170c611777c82880f03b91" +checksum = "6f510c5c91aa0460e31f634f44208aeafa4356de44e3ecfd878c099d194a8c3f" dependencies = [ "hex", "libc", @@ -9229,7 +9232,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", "toml", "trailer", @@ -9238,9 +9241,9 @@ dependencies = [ [[package]] name = "sozu-lib" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f410b52d9a54940439ec10640c0e74077d1db443df0b0576e4eb006863698" +checksum = "e010c9a3f0677ba327459ff75b79615772ef41d80a287a447873ecf09fe159e9" dependencies = [ "anyhow", "cookie-factory", @@ -9256,22 +9259,22 @@ dependencies = [ "poule", "rand", "regex", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pemfile 2.2.0", "rusty_ulid", "sha2", "slab", "socket2", "sozu-command-lib", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", ] [[package]] name = "spdx" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae30cc7bfe3656d60ee99bf6836f472b0c53dddcbf335e253329abb16e535a2" +checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" dependencies = [ "smallvec", ] @@ -9311,21 +9314,11 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - [[package]] name = "sqlx" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" dependencies = [ "sqlx-core", "sqlx-macros", @@ -9336,38 +9329,32 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" dependencies = [ - "atoi", - "byteorder", "bytes 1.9.0", "chrono", "crc", "crossbeam-queue", "either", - "event-listener 5.3.1", - "futures-channel", + "event-listener 5.4.0", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.14.5", - "hashlink 0.9.1", - "hex", + "hashbrown 0.15.2", + "hashlink 0.10.0", "indexmap 2.7.0", "log 0.4.22", "memchr", "once_cell", - "paste", "percent-encoding", "serde", "serde_json", "sha2", "smallvec", - "sqlformat", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tokio-stream", "tracing", @@ -9377,22 +9364,22 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" dependencies = [ "proc-macro2", "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "sqlx-macros-core" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" dependencies = [ "dotenvy", "either", @@ -9408,7 +9395,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.90", + "syn 2.0.96", "tempfile", "tokio", "url", @@ -9416,13 +9403,13 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a" +checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.6.0", + "bitflags 2.7.0", "byteorder", "bytes 1.9.0", "chrono", @@ -9452,7 +9439,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "uuid", "whoami", @@ -9460,13 +9447,13 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.6.0", + "bitflags 2.7.0", "byteorder", "chrono", "crc", @@ -9474,7 +9461,6 @@ dependencies = [ "etcetera", "futures-channel", "futures-core", - "futures-io", "futures-util", "hex", "hkdf", @@ -9492,7 +9478,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "uuid", "whoami", @@ -9500,9 +9486,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" dependencies = [ "atoi", "chrono", @@ -9582,7 +9568,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -9593,7 +9579,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -9612,7 +9598,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -9634,9 +9620,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -9666,14 +9652,14 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "sysinfo" -version = "0.33.0" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "948512566b1895f93b1592c7574baeb2de842f224f2aab158799ecadb8ebbb46" +checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" dependencies = [ "core-foundation-sys", "libc", @@ -9700,7 +9686,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -9731,7 +9717,7 @@ version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc4592f674ce18521c2a81483873a49596655b179f71c5e05d10c1fe66c78745" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "cap-fs-ext", "cap-std", "fd-lock", @@ -9755,12 +9741,13 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.14.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if", "fastrand", + "getrandom", "once_cell", "rustix", "windows-sys 0.59.0", @@ -9831,7 +9818,7 @@ dependencies = [ "proc-macro2", "quote", "rand", - "syn 2.0.90", + "syn 2.0.96", "test-r-core", ] @@ -9866,9 +9853,9 @@ dependencies = [ [[package]] name = "testcontainers-modules" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064a2677e164cad39ef3c1abddb044d5a25c49d27005804563d8c4227aac8bd0" +checksum = "7b4a531f812dedf1f0d844e69884d76fd7dd9b1967abc89550c6d270b2b55b9c" dependencies = [ "testcontainers", ] @@ -9895,11 +9882,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.8" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.8", + "thiserror-impl 2.0.11", ] [[package]] @@ -9910,18 +9897,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "thiserror-impl" -version = "2.0.8" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -10005,9 +9992,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", ] @@ -10020,9 +10007,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.42.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes 1.9.0", @@ -10039,13 +10026,13 @@ 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.90", + "syn 2.0.96", ] [[package]] @@ -10111,7 +10098,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.20", + "rustls 0.23.21", "tokio", ] @@ -10156,28 +10143,28 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" dependencies = [ "futures-util", "log 0.4.22", + "native-tls", "tokio", - "tungstenite 0.23.0", + "tokio-native-tls", + "tungstenite 0.24.0", ] [[package]] name = "tokio-tungstenite" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +checksum = "c28562dd8aea311048ed1ab9372a6b9a59977e1b308afb87c985c1f2b3206938" dependencies = [ "futures-util", "log 0.4.22", - "native-tls", "tokio", - "tokio-native-tls", - "tungstenite 0.24.0", + "tungstenite 0.25.0", ] [[package]] @@ -10249,7 +10236,7 @@ dependencies = [ "hyper-timeout", "hyper-util", "percent-encoding", - "pin-project 1.1.7", + "pin-project 1.1.8", "prost 0.13.4", "socket2", "tokio", @@ -10271,7 +10258,7 @@ dependencies = [ "prost-build 0.13.4", "prost-types 0.13.4", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -10315,7 +10302,7 @@ dependencies = [ "futures-core", "futures-util", "indexmap 1.9.3", - "pin-project 1.1.7", + "pin-project 1.1.8", "pin-project-lite", "rand", "slab", @@ -10350,7 +10337,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "base64 0.22.1", - "bitflags 2.6.0", + "bitflags 2.7.0", "bytes 1.9.0", "http 1.2.0", "http-body 1.0.1", @@ -10393,7 +10380,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -10414,7 +10401,7 @@ checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ "futures", "futures-task", - "pin-project 1.1.7", + "pin-project 1.1.8", "tracing", ] @@ -10478,7 +10465,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -10501,9 +10488,9 @@ checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" [[package]] name = "tungstenite" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", "bytes 1.9.0", @@ -10511,6 +10498,7 @@ dependencies = [ "http 1.2.0", "httparse", "log 0.4.22", + "native-tls", "rand", "sha1", "thiserror 1.0.69", @@ -10519,9 +10507,9 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +checksum = "326eb16466ed89221beef69dbc94f517ee888bae959895472133924a25f7070e" dependencies = [ "byteorder", "bytes 1.9.0", @@ -10529,10 +10517,9 @@ dependencies = [ "http 1.2.0", "httparse", "log 0.4.22", - "native-tls", "rand", "sha1", - "thiserror 1.0.69", + "thiserror 2.0.11", "utf-8", ] @@ -10582,9 +10569,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-bidi" @@ -10643,12 +10630,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - [[package]] name = "universal-hash" version = "0.5.1" @@ -10715,9 +10696,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4" dependencies = [ "getrandom", "serde", @@ -10878,7 +10859,7 @@ dependencies = [ "once_cell", "pathdiff", "ptree", - "reqwest 0.12.9", + "reqwest 0.12.12", "secrecy 0.8.0", "semver", "serde", @@ -10999,34 +10980,35 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log 0.4.22", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.49" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", @@ -11037,9 +11019,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11047,22 +11029,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-compose" @@ -11145,12 +11130,12 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.222.0" +version = "0.223.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3432682105d7e994565ef928ccf5856cf6af4ba3dddebedb737f61caed70f956" +checksum = "7e636076193fa68103e937ac951b5f2f587624097017d764b8984d9c0f149464" dependencies = [ "leb128", - "wasmparser 0.222.0", + "wasmparser 0.223.0", ] [[package]] @@ -11278,7 +11263,7 @@ dependencies = [ "etcetera", "futures-util", "http 1.2.0", - "reqwest 0.12.9", + "reqwest 0.12.12", "semver", "serde", "serde_json", @@ -11333,7 +11318,7 @@ version = "0.121.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "indexmap 2.7.0", "semver", ] @@ -11344,7 +11329,7 @@ version = "0.202.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "indexmap 2.7.0", "semver", ] @@ -11356,7 +11341,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07035cc9a9b41e62d3bb3a3815a66ab87c993c06fe1cf6b2a3f2a18499d937db" dependencies = [ "ahash", - "bitflags 2.6.0", + "bitflags 2.7.0", "hashbrown 0.14.5", "indexmap 2.7.0", "semver", @@ -11369,7 +11354,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c771866898879073c53b565a6c7b49953795159836714ac56a5befb581227c5" dependencies = [ "ahash", - "bitflags 2.6.0", + "bitflags 2.7.0", "hashbrown 0.14.5", "indexmap 2.7.0", "semver", @@ -11383,7 +11368,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e246c2772ce3ebc83f89a2d4487ac5794cad6c309b2071818a88c7db7c36d87b" dependencies = [ "ahash", - "bitflags 2.6.0", + "bitflags 2.7.0", "hashbrown 0.14.5", "indexmap 2.7.0", "semver", @@ -11396,7 +11381,7 @@ version = "0.221.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9845c470a2e10b61dd42c385839cdd6496363ed63b5c9e420b5488b77bd22083" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "hashbrown 0.15.2", "indexmap 2.7.0", "semver", @@ -11409,7 +11394,18 @@ version = "0.222.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4adf50fde1b1a49c1add6a80d47aea500c88db70551805853aa8b88f3ea27ab5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", + "indexmap 2.7.0", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.223.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5a99faceb1a5a84dd6084ec4bfa4b2ab153b5793b43fd8f58b89232634afc35" +dependencies = [ + "bitflags 2.7.0", "indexmap 2.7.0", "semver", ] @@ -11454,7 +11450,7 @@ dependencies = [ "addr2line", "anyhow", "async-trait", - "bitflags 2.6.0", + "bitflags 2.7.0", "bumpalo", "cc", "cfg-if", @@ -11537,7 +11533,7 @@ dependencies = [ "anyhow", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "wasmtime-component-util", "wasmtime-wit-bindgen", "wit-parser 0.219.1", @@ -11645,7 +11641,7 @@ source = "git+https://github.com/golemcloud/wasmtime.git?branch=golem-wasmtime-v dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -11655,7 +11651,7 @@ source = "git+https://github.com/golemcloud/wasmtime.git?branch=golem-wasmtime-v dependencies = [ "anyhow", "async-trait", - "bitflags 2.6.0", + "bitflags 2.7.0", "bytes 1.9.0", "cap-fs-ext", "cap-net-ext", @@ -11737,31 +11733,31 @@ dependencies = [ [[package]] name = "wast" -version = "222.0.0" +version = "223.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce7191f4b7da0dd300cc32476abae6457154e4625d9b1bc26890828a9a26f6e" +checksum = "d59b2ba8a2ff9f06194b7be9524f92e45e70149f4dacc0d0c7ad92b59ac875e4" dependencies = [ "bumpalo", "leb128", "memchr", "unicode-width 0.2.0", - "wasm-encoder 0.222.0", + "wasm-encoder 0.223.0", ] [[package]] name = "wat" -version = "1.222.0" +version = "1.223.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fde61b4b52f9a84ae31b5e8902a2cd3162ea45d8bf564c729c3288fe52f4334" +checksum = "662786915c427e4918ff01eabb3c4756d4d947cd8f635761526b4cc9da2eaaad" dependencies = [ - "wast 222.0.0", + "wast 223.0.0", ] [[package]] name = "web-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -11846,7 +11842,7 @@ source = "git+https://github.com/golemcloud/wasmtime.git?branch=golem-wasmtime-v dependencies = [ "anyhow", "async-trait", - "bitflags 2.6.0", + "bitflags 2.7.0", "thiserror 1.0.69", "tracing", "wasmtime", @@ -11863,7 +11859,7 @@ dependencies = [ "proc-macro2", "quote", "shellexpand", - "syn 2.0.90", + "syn 2.0.96", "witx", ] @@ -11874,7 +11870,7 @@ source = "git+https://github.com/golemcloud/wasmtime.git?branch=golem-wasmtime-v dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "wiggle-generate", ] @@ -11980,7 +11976,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -11991,7 +11987,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -12183,9 +12179,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] @@ -12212,7 +12208,7 @@ version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3fd376f71958b862e7afb20cfe5a22830e1963462f3a17f49d82a6c1d1f42d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "windows-sys 0.59.0", ] @@ -12249,11 +12245,11 @@ dependencies = [ [[package]] name = "wit-bindgen-rt" -version = "0.26.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" +checksum = "7947d0131c7c9da3f01dfde0ab8bd4c4cf3c5bd49b6dba0ae640f1fa752572ea" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", ] [[package]] @@ -12280,7 +12276,7 @@ dependencies = [ "heck 0.5.0", "indexmap 2.7.0", "prettyplease", - "syn 2.0.90", + "syn 2.0.96", "wasm-metadata 0.220.0", "wit-bindgen-core 0.36.0", "wit-component 0.220.0", @@ -12293,7 +12289,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25a2bb5b039f9cb03425e1d5a6e54b441ca4ca1b1d4fa6a0924db67a55168f99" dependencies = [ "anyhow", - "bitflags 2.6.0", + "bitflags 2.7.0", "indexmap 2.7.0", "log 0.4.22", "serde", @@ -12312,7 +12308,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad1673163c0cb14a6a19ddbf44dd4efe6f015ec1ebb8156710ac32501f19fba2" dependencies = [ "anyhow", - "bitflags 2.6.0", + "bitflags 2.7.0", "indexmap 2.7.0", "log 0.4.22", "serde", @@ -12331,7 +12327,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73ccedf54cc65f287da268d64d2bf4f7530d2cfb2296ffbe3ad5f65567e4cf53" dependencies = [ "anyhow", - "bitflags 2.6.0", + "bitflags 2.7.0", "indexmap 2.7.0", "log 0.4.22", "serde", @@ -12489,9 +12485,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" dependencies = [ "libc", "linux-raw-sys", @@ -12568,7 +12564,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "synstructure", ] @@ -12589,7 +12585,7 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener 5.3.1", + "event-listener 5.4.0", "futures-core", "futures-sink", "futures-util", @@ -12619,7 +12615,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "zvariant_utils", ] @@ -12652,7 +12648,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -12672,7 +12668,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "synstructure", ] @@ -12701,7 +12697,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -12754,7 +12750,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "zvariant_utils", ] @@ -12766,5 +12762,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] diff --git a/Cargo.toml b/Cargo.toml index 39b48e9766..1578ab232a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -109,6 +109,7 @@ futures = "0.3" futures-core = "0.3.31" futures-util = "0.3.31" git-version = "0.3.9" +golem-wit = { version = "=1.1.2" } hex = "0.4.3" http = "1.2.0" # keep in sync with wasmtime humansize = "2.1.3" diff --git a/golem-worker-executor-base/Cargo.toml b/golem-worker-executor-base/Cargo.toml index 07f7f99845..56ed5b0352 100644 --- a/golem-worker-executor-base/Cargo.toml +++ b/golem-worker-executor-base/Cargo.toml @@ -49,7 +49,6 @@ fs-set-times = "0.20.2" futures = { workspace = true } futures-util = { workspace = true } gethostname = "0.5.0" -golem-wit = { version = "=1.1.1" } hex = { workspace = true } http = { workspace = true } http-body = "1.0.1" # keep in sync with wasmtime @@ -110,6 +109,7 @@ tracing-subscriber = { workspace = true } [build-dependencies] cargo_metadata = "0.19.1" +golem-wit = { workspace = true } [[test]] name = "integration" diff --git a/golem-worker-executor-base/build.rs b/golem-worker-executor-base/build.rs index 3a369bfa78..f48566249e 100644 --- a/golem-worker-executor-base/build.rs +++ b/golem-worker-executor-base/build.rs @@ -66,6 +66,7 @@ fn preview2_mod_gen(golem_wit_path: &str) -> String { import golem:api/host@0.2.0; import golem:api/host@1.1.0; import golem:api/oplog@1.1.0; + import golem:api/durability@1.2.0; import wasi:blobstore/blobstore; import wasi:blobstore/container; @@ -97,7 +98,7 @@ fn preview2_mod_gen(golem_wit_path: &str) -> String { "wasi:keyvalue/types/outgoing-value": super::durable_host::keyvalue::types::OutgoingValueEntry, "golem:api/host/get-workers": super::durable_host::golem::GetWorkersEntry, "golem:api/oplog/get-oplog": super::durable_host::golem::v11::GetOplogEntry, - "golem:api/oplog/search-oplog": super::durable_host::golem::v11::SearchOplogEntry + "golem:api/oplog/search-oplog": super::durable_host::golem::v11::SearchOplogEntry, }}, }}); "# diff --git a/golem-worker-executor-base/src/durable_host/durability.rs b/golem-worker-executor-base/src/durable_host/durability.rs index 3c9bb0e314..ab0807cedb 100644 --- a/golem-worker-executor-base/src/durable_host/durability.rs +++ b/golem-worker-executor-base/src/durable_host/durability.rs @@ -16,6 +16,8 @@ use crate::durable_host::DurableWorkerCtx; use crate::error::GolemError; use crate::metrics::wasm::record_host_function_call; use crate::model::PersistenceLevel; +use crate::preview2::golem; +use crate::preview2::golem::api1_2_0; use crate::services::oplog::{CommitLevel, OplogOps}; use crate::workerctx::WorkerCtx; use async_trait::async_trait; @@ -27,6 +29,7 @@ use golem_common::serialization::{serialize, try_deserialize}; use golem_wasm_rpc::{IntoValue, IntoValueAndType, ValueAndType}; use std::fmt::Debug; use std::marker::PhantomData; +use std::mem::transmute; use tracing::error; #[derive(Debug)] @@ -48,7 +51,7 @@ pub struct PersistedDurableFunctionInvocation { #[async_trait] pub trait DurabilityHost { /// Observes a function call (produces logs and metrics) - fn observe_function_call(&self, interface: &'static str, function: &'static str); + fn observe_function_call(&self, interface: &str, function: &str); /// Marks the beginning of a durable function. /// @@ -102,9 +105,175 @@ pub trait DurabilityHost { ) -> Result; } +impl From for DurableFunctionType { + fn from(value: api1_2_0::durability::DurableFunctionType) -> Self { + match value { + api1_2_0::durability::DurableFunctionType::WriteRemote => { + DurableFunctionType::WriteRemote + } + api1_2_0::durability::DurableFunctionType::WriteLocal => { + DurableFunctionType::WriteLocal + } + api1_2_0::durability::DurableFunctionType::WriteRemoteBatched(oplog_index) => { + DurableFunctionType::WriteRemoteBatched(oplog_index.map(OplogIndex::from_u64)) + } + api1_2_0::durability::DurableFunctionType::ReadRemote => { + DurableFunctionType::ReadRemote + } + api1_2_0::durability::DurableFunctionType::ReadLocal => DurableFunctionType::ReadLocal, + } + } +} + +impl From for api1_2_0::durability::DurableFunctionType { + fn from(value: DurableFunctionType) -> Self { + match value { + DurableFunctionType::WriteRemote => { + api1_2_0::durability::DurableFunctionType::WriteRemote + } + DurableFunctionType::WriteLocal => { + api1_2_0::durability::DurableFunctionType::WriteLocal + } + DurableFunctionType::WriteRemoteBatched(oplog_index) => { + api1_2_0::durability::DurableFunctionType::WriteRemoteBatched( + oplog_index.map(|idx| idx.into()), + ) + } + DurableFunctionType::ReadRemote => { + api1_2_0::durability::DurableFunctionType::ReadRemote + } + DurableFunctionType::ReadLocal => api1_2_0::durability::DurableFunctionType::ReadLocal, + } + } +} + +impl From for api1_2_0::durability::OplogEntryVersion { + fn from(value: OplogEntryVersion) -> Self { + match value { + OplogEntryVersion::V1 => api1_2_0::durability::OplogEntryVersion::V1, + OplogEntryVersion::V2 => api1_2_0::durability::OplogEntryVersion::V2, + } + } +} + +impl From + for api1_2_0::durability::PersistedDurableFunctionInvocation +{ + fn from(value: PersistedDurableFunctionInvocation) -> Self { + api1_2_0::durability::PersistedDurableFunctionInvocation { + timestamp: value.timestamp.into(), + function_name: value.function_name, + response: value.response, + function_type: value.function_type.into(), + entry_version: value.oplog_entry_version.into(), + } + } +} + +#[async_trait] +impl api1_2_0::durability::Host for DurableWorkerCtx { + async fn observe_function_call( + &mut self, + iface: String, + function: String, + ) -> anyhow::Result<()> { + DurabilityHost::observe_function_call(self, &iface, &function); + Ok(()) + } + + async fn begin_durable_function( + &mut self, + function_type: api1_2_0::durability::DurableFunctionType, + ) -> anyhow::Result { + let oplog_idx = DurabilityHost::begin_durable_function(self, &function_type.into()).await?; + Ok(oplog_idx.into()) + } + + async fn end_durable_function( + &mut self, + function_type: api1_2_0::durability::DurableFunctionType, + begin_index: api1_2_0::durability::OplogIndex, + ) -> anyhow::Result<()> { + DurabilityHost::end_durable_function( + self, + &function_type.into(), + OplogIndex::from_u64(begin_index), + ) + .await?; + Ok(()) + } + + async fn current_durable_execution_state( + &mut self, + ) -> anyhow::Result { + let state = DurabilityHost::durable_execution_state(self); + let persistence_level: golem::api0_2_0::host::PersistenceLevel = + state.persistence_level.into(); + Ok(api1_2_0::durability::DurableExecutionState { + is_live: state.is_live, + persistence_level: persistence_level.into(), + }) + } + + async fn persist_durable_function_invocation( + &mut self, + function_name: String, + request: Vec, + response: Vec, + function_type: api1_2_0::durability::DurableFunctionType, + ) -> anyhow::Result<()> { + DurabilityHost::persist_durable_function_invocation( + self, + function_name, + &request, + &response, + function_type.into(), + ) + .await; + Ok(()) + } + + async fn persist_typed_durable_function_invocation( + &mut self, + function_name: String, + request: api1_2_0::durability::ValueAndType, + response: api1_2_0::durability::ValueAndType, + function_type: api1_2_0::durability::DurableFunctionType, + ) -> anyhow::Result<()> { + let request = unsafe { + transmute::< + api1_2_0::durability::ValueAndType, + golem_wasm_rpc::golem::rpc::types::ValueAndType, + >(request) + }; + let response = unsafe { + transmute::< + api1_2_0::durability::ValueAndType, + golem_wasm_rpc::golem::rpc::types::ValueAndType, + >(response) + }; + DurabilityHost::persist_typed_durable_function_invocation( + self, + function_name, + request.into(), + response.into(), + function_type.into(), + ) + .await; + Ok(()) + } + + async fn read_persisted_durable_function_invocation( + &mut self, + ) -> anyhow::Result { + let invocation = DurabilityHost::read_persisted_durable_function_invocation(self).await?; + Ok(invocation.into()) + } +} + #[async_trait] impl DurabilityHost for DurableWorkerCtx { - fn observe_function_call(&self, interface: &'static str, function: &'static str) { + fn observe_function_call(&self, interface: &str, function: &str) { record_host_function_call(interface, function); } @@ -160,11 +329,11 @@ impl DurabilityHost for DurableWorkerCtx { function_type: DurableFunctionType, ) { let request = serialize(&request).unwrap_or_else(|err| { - panic!("failed to serialize request ({request:?}) for persisting durable function invocation: {err}") - }).to_vec(); + panic!("failed to serialize request ({request:?}) for persisting durable function invocation: {err}") + }).to_vec(); let response = serialize(&response).unwrap_or_else(|err| { - panic!("failed to serialize response ({response:?}) for persisting durable function invocation: {err}") - }).to_vec(); + panic!("failed to serialize response ({response:?}) for persisting durable function invocation: {err}") + }).to_vec(); self.state .oplog diff --git a/golem-worker-executor-base/src/durable_host/wasm_rpc/mod.rs b/golem-worker-executor-base/src/durable_host/wasm_rpc/mod.rs index 7f1e29c611..fab7feab01 100644 --- a/golem-worker-executor-base/src/durable_host/wasm_rpc/mod.rs +++ b/golem-worker-executor-base/src/durable_host/wasm_rpc/mod.rs @@ -40,7 +40,8 @@ use golem_wasm_rpc::golem::rpc::types::{ }; use golem_wasm_rpc::protobuf::type_annotated_value::TypeAnnotatedValue; use golem_wasm_rpc::{ - FutureInvokeResultEntry, HostWasmRpc, SubscribeAny, Value, ValueAndType, WasmRpcEntry, WitValue, + FutureInvokeResultEntry, HostWasmRpc, SubscribeAny, Value, ValueAndType, WasmRpcEntry, WitType, + WitValue, }; use std::any::Any; use std::fmt::{Debug, Formatter}; @@ -774,7 +775,23 @@ impl HostFutureInvokeResult for DurableWorkerCtx { } #[async_trait] -impl golem_wasm_rpc::Host for DurableWorkerCtx {} +impl golem_wasm_rpc::Host for DurableWorkerCtx { + // NOTE: these extract functions are only added as a workaround for the fact that the binding + // generator does not include types that are not used in any exported _functions_ + async fn extract_value( + &mut self, + vnt: golem_wasm_rpc::golem::rpc::types::ValueAndType, + ) -> anyhow::Result { + Ok(vnt.value) + } + + async fn extract_type( + &mut self, + vnt: golem_wasm_rpc::golem::rpc::types::ValueAndType, + ) -> anyhow::Result { + Ok(vnt.typ) + } +} /// Tries to get a `ValueAndType` representation for the given `WitValue` parameters by querying the latest component metadata for the /// target component. diff --git a/golem-worker-executor-base/src/metrics.rs b/golem-worker-executor-base/src/metrics.rs index 5ada477fa2..e250affdbe 100644 --- a/golem-worker-executor-base/src/metrics.rs +++ b/golem-worker-executor-base/src/metrics.rs @@ -228,7 +228,7 @@ pub mod wasm { .unwrap(); } - pub fn record_host_function_call(iface: &'static str, name: &'static str) { + pub fn record_host_function_call(iface: &str, name: &str) { debug!("golem {iface}::{name} called"); HOST_FUNCTION_CALL_TOTAL .with_label_values(&[iface, name]) diff --git a/golem-worker-executor-base/tests/common/mod.rs b/golem-worker-executor-base/tests/common/mod.rs index 46ffede389..acbe36a5f1 100644 --- a/golem-worker-executor-base/tests/common/mod.rs +++ b/golem-worker-executor-base/tests/common/mod.rs @@ -82,7 +82,7 @@ use golem_test_framework::dsl::to_worker_metadata; use golem_wasm_rpc::golem::rpc::types::{FutureInvokeResult, WasmRpc}; use golem_wasm_rpc::golem::rpc::types::{HostFutureInvokeResult, Pollable}; use golem_worker_executor_base::preview2::golem; -use golem_worker_executor_base::preview2::golem::api1_1_0; +use golem_worker_executor_base::preview2::golem::{api1_1_0, api1_2_0}; use golem_worker_executor_base::services::events::Events; use golem_worker_executor_base::services::oplog::plugin::OplogProcessorPlugin; use golem_worker_executor_base::services::plugins::{Plugins, PluginsObservations}; @@ -1013,6 +1013,8 @@ impl Bootstrap for ServerBootstrap { let mut linker = create_linker(engine, get_durable_ctx)?; api0_2_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?; api1_1_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?; + api1_1_0::oplog::add_to_linker_get_host(&mut linker, get_durable_ctx)?; + api1_2_0::durability::add_to_linker_get_host(&mut linker, get_durable_ctx)?; golem_wasm_rpc::golem::rpc::types::add_to_linker_get_host(&mut linker, get_durable_ctx)?; Ok(linker) } diff --git a/golem-worker-executor/src/lib.rs b/golem-worker-executor/src/lib.rs index 22178ce782..6db2782df0 100644 --- a/golem-worker-executor/src/lib.rs +++ b/golem-worker-executor/src/lib.rs @@ -23,7 +23,7 @@ use async_trait::async_trait; use golem_common::model::component::ComponentOwner; use golem_common::model::plugin::{DefaultPluginOwner, DefaultPluginScope}; use golem_worker_executor_base::durable_host::DurableWorkerCtx; -use golem_worker_executor_base::preview2::golem::{api0_2_0, api1_1_0}; +use golem_worker_executor_base::preview2::golem::{api0_2_0, api1_1_0, api1_2_0}; use golem_worker_executor_base::services::active_workers::ActiveWorkers; use golem_worker_executor_base::services::blob_store::BlobStoreService; use golem_worker_executor_base::services::component::ComponentService; @@ -204,6 +204,8 @@ impl Bootstrap for ServerBootstrap { let mut linker = create_linker(engine, get_durable_ctx)?; api0_2_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?; api1_1_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?; + api1_1_0::oplog::add_to_linker_get_host(&mut linker, get_durable_ctx)?; + api1_2_0::durability::add_to_linker_get_host(&mut linker, get_durable_ctx)?; golem_wasm_rpc::golem::rpc::types::add_to_linker_get_host(&mut linker, get_durable_ctx)?; Ok(linker) } diff --git a/wasm-rpc-stubgen/src/wit_generate.rs b/wasm-rpc-stubgen/src/wit_generate.rs index ef6ad1d137..5d9332abaa 100644 --- a/wasm-rpc-stubgen/src/wit_generate.rs +++ b/wasm-rpc-stubgen/src/wit_generate.rs @@ -61,7 +61,7 @@ pub fn generate_client_package_from_stub_def(def: &StubDefinition) -> anyhow::Re // Common used types stub_interface.use_type( - "golem:rpc/types@0.1.0", + "golem:rpc/types@0.1.1", "uri", Some(Ident::new("golem-rpc-uri")), ); diff --git a/wasm-rpc/Cargo.toml b/wasm-rpc/Cargo.toml index b6cec474b0..d51e4d3650 100644 --- a/wasm-rpc/Cargo.toml +++ b/wasm-rpc/Cargo.toml @@ -15,7 +15,7 @@ crate-type = ["cdylib", "rlib"] harness = false [dependencies] -wit-bindgen-rt = { version = "=0.26.0", features = ["bitflags"] } +wit-bindgen-rt = { version = "=0.36.0", features = ["bitflags"] } arbitrary = { version = "1.4.1", features = ["derive"], optional = true } async-recursion = { workspace = true, optional = true } diff --git a/wasm-rpc/src/bindings.rs b/wasm-rpc/src/bindings.rs index 8447263125..a3ca9b9ff7 100644 --- a/wasm-rpc/src/bindings.rs +++ b/wasm-rpc/src/bindings.rs @@ -13,6 +13,153 @@ pub mod golem { use super::super::super::_rt; pub type Pollable = super::super::super::wasi::io::poll::Pollable; pub type NodeIndex = i32; + pub type ResourceId = u64; + #[repr(u8)] + #[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)] + pub enum ResourceMode { + Owned, + Borrowed, + } + impl ::core::fmt::Debug for ResourceMode { + fn fmt( + &self, + f: &mut ::core::fmt::Formatter<'_>, + ) -> ::core::fmt::Result { + match self { + ResourceMode::Owned => { + f.debug_tuple("ResourceMode::Owned").finish() + } + ResourceMode::Borrowed => { + f.debug_tuple("ResourceMode::Borrowed").finish() + } + } + } + } + impl ResourceMode { + #[doc(hidden)] + pub unsafe fn _lift(val: u8) -> ResourceMode { + if !cfg!(debug_assertions) { + return ::core::mem::transmute(val); + } + match val { + 0 => ResourceMode::Owned, + 1 => ResourceMode::Borrowed, + _ => panic!("invalid enum discriminant"), + } + } + } + #[derive(Clone)] + pub enum WitTypeNode { + RecordType(_rt::Vec<(_rt::String, NodeIndex)>), + VariantType(_rt::Vec<(_rt::String, Option)>), + EnumType(_rt::Vec<_rt::String>), + FlagsType(_rt::Vec<_rt::String>), + TupleType(_rt::Vec), + ListType(NodeIndex), + OptionType(NodeIndex), + ResultType((Option, Option)), + PrimU8Type, + PrimU16Type, + PrimU32Type, + PrimU64Type, + PrimS8Type, + PrimS16Type, + PrimS32Type, + PrimS64Type, + PrimF32Type, + PrimF64Type, + PrimCharType, + PrimBoolType, + PrimStringType, + HandleType((ResourceId, ResourceMode)), + } + impl ::core::fmt::Debug for WitTypeNode { + fn fmt( + &self, + f: &mut ::core::fmt::Formatter<'_>, + ) -> ::core::fmt::Result { + match self { + WitTypeNode::RecordType(e) => { + f.debug_tuple("WitTypeNode::RecordType").field(e).finish() + } + WitTypeNode::VariantType(e) => { + f.debug_tuple("WitTypeNode::VariantType").field(e).finish() + } + WitTypeNode::EnumType(e) => { + f.debug_tuple("WitTypeNode::EnumType").field(e).finish() + } + WitTypeNode::FlagsType(e) => { + f.debug_tuple("WitTypeNode::FlagsType").field(e).finish() + } + WitTypeNode::TupleType(e) => { + f.debug_tuple("WitTypeNode::TupleType").field(e).finish() + } + WitTypeNode::ListType(e) => { + f.debug_tuple("WitTypeNode::ListType").field(e).finish() + } + WitTypeNode::OptionType(e) => { + f.debug_tuple("WitTypeNode::OptionType").field(e).finish() + } + WitTypeNode::ResultType(e) => { + f.debug_tuple("WitTypeNode::ResultType").field(e).finish() + } + WitTypeNode::PrimU8Type => { + f.debug_tuple("WitTypeNode::PrimU8Type").finish() + } + WitTypeNode::PrimU16Type => { + f.debug_tuple("WitTypeNode::PrimU16Type").finish() + } + WitTypeNode::PrimU32Type => { + f.debug_tuple("WitTypeNode::PrimU32Type").finish() + } + WitTypeNode::PrimU64Type => { + f.debug_tuple("WitTypeNode::PrimU64Type").finish() + } + WitTypeNode::PrimS8Type => { + f.debug_tuple("WitTypeNode::PrimS8Type").finish() + } + WitTypeNode::PrimS16Type => { + f.debug_tuple("WitTypeNode::PrimS16Type").finish() + } + WitTypeNode::PrimS32Type => { + f.debug_tuple("WitTypeNode::PrimS32Type").finish() + } + WitTypeNode::PrimS64Type => { + f.debug_tuple("WitTypeNode::PrimS64Type").finish() + } + WitTypeNode::PrimF32Type => { + f.debug_tuple("WitTypeNode::PrimF32Type").finish() + } + WitTypeNode::PrimF64Type => { + f.debug_tuple("WitTypeNode::PrimF64Type").finish() + } + WitTypeNode::PrimCharType => { + f.debug_tuple("WitTypeNode::PrimCharType").finish() + } + WitTypeNode::PrimBoolType => { + f.debug_tuple("WitTypeNode::PrimBoolType").finish() + } + WitTypeNode::PrimStringType => { + f.debug_tuple("WitTypeNode::PrimStringType").finish() + } + WitTypeNode::HandleType(e) => { + f.debug_tuple("WitTypeNode::HandleType").field(e).finish() + } + } + } + } + #[derive(Clone)] + pub struct WitType { + pub nodes: _rt::Vec, + } + impl ::core::fmt::Debug for WitType { + fn fmt( + &self, + f: &mut ::core::fmt::Formatter<'_>, + ) -> ::core::fmt::Result { + f.debug_struct("WitType").field("nodes", &self.nodes).finish() + } + } #[derive(Clone)] pub struct Uri { pub value: _rt::String, @@ -138,6 +285,22 @@ pub mod golem { } } #[derive(Clone)] + pub struct ValueAndType { + pub value: WitValue, + pub typ: WitType, + } + impl ::core::fmt::Debug for ValueAndType { + fn fmt( + &self, + f: &mut ::core::fmt::Formatter<'_>, + ) -> ::core::fmt::Result { + f.debug_struct("ValueAndType") + .field("value", &self.value) + .field("typ", &self.typ) + .finish() + } + } + #[derive(Clone)] pub enum RpcError { ProtocolError(_rt::String), Denied(_rt::String), @@ -204,7 +367,7 @@ pub mod golem { unreachable!(); #[cfg(target_arch = "wasm32")] { - #[link(wasm_import_module = "golem:rpc/types@0.1.0")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] extern "C" { #[link_name = "[resource-drop]wasm-rpc"] fn drop(_: u32); @@ -241,7 +404,7 @@ pub mod golem { unreachable!(); #[cfg(target_arch = "wasm32")] { - #[link(wasm_import_module = "golem:rpc/types@0.1.0")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] extern "C" { #[link_name = "[resource-drop]future-invoke-result"] fn drop(_: u32); @@ -259,7 +422,7 @@ pub mod golem { let ptr1 = vec1.as_ptr().cast::(); let len1 = vec1.len(); #[cfg(target_arch = "wasm32")] - #[link(wasm_import_module = "golem:rpc/types@0.1.0")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] extern "C" { #[link_name = "[constructor]wasm-rpc"] fn wit_import(_: *mut u8, _: usize) -> i32; @@ -521,7 +684,7 @@ pub mod golem { } let ptr13 = ret_area.0.as_mut_ptr().cast::(); #[cfg(target_arch = "wasm32")] - #[link(wasm_import_module = "golem:rpc/types@0.1.0")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] extern "C" { #[link_name = "[method]wasm-rpc.invoke-and-await"] fn wit_import( @@ -1157,7 +1320,7 @@ pub mod golem { } let ptr13 = ret_area.0.as_mut_ptr().cast::(); #[cfg(target_arch = "wasm32")] - #[link(wasm_import_module = "golem:rpc/types@0.1.0")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] extern "C" { #[link_name = "[method]wasm-rpc.invoke"] fn wit_import( @@ -1515,7 +1678,7 @@ pub mod golem { } } #[cfg(target_arch = "wasm32")] - #[link(wasm_import_module = "golem:rpc/types@0.1.0")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] extern "C" { #[link_name = "[method]wasm-rpc.async-invoke-and-await"] fn wit_import( @@ -1560,7 +1723,7 @@ pub mod golem { pub fn subscribe(&self) -> Pollable { unsafe { #[cfg(target_arch = "wasm32")] - #[link(wasm_import_module = "golem:rpc/types@0.1.0")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] extern "C" { #[link_name = "[method]future-invoke-result.subscribe"] fn wit_import(_: i32) -> i32; @@ -1587,7 +1750,7 @@ pub mod golem { ); let ptr0 = ret_area.0.as_mut_ptr().cast::(); #[cfg(target_arch = "wasm32")] - #[link(wasm_import_module = "golem:rpc/types@0.1.0")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] extern "C" { #[link_name = "[method]future-invoke-result.get"] fn wit_import(_: i32, _: *mut u8); @@ -1956,6 +2119,1479 @@ pub mod golem { } } } + #[allow(unused_unsafe, clippy::all)] + pub fn extract_value(vnt: &ValueAndType) -> WitValue { + unsafe { + let mut cleanup_list = _rt::Vec::new(); + #[repr(align(4))] + struct RetArea([::core::mem::MaybeUninit; 8]); + let mut ret_area = RetArea([::core::mem::MaybeUninit::uninit(); 8]); + let ValueAndType { value: value0, typ: typ0 } = vnt; + let WitValue { nodes: nodes1 } = value0; + let vec11 = nodes1; + let len11 = vec11.len(); + let layout11 = _rt::alloc::Layout::from_size_align_unchecked( + vec11.len() * 24, + 8, + ); + let result11 = if layout11.size() != 0 { + let ptr = _rt::alloc::alloc(layout11).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout11); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec11.into_iter().enumerate() { + let base = result11.add(i * 24); + { + match e { + WitNode::RecordValue(e) => { + *base.add(0).cast::() = (0i32) as u8; + let vec2 = e; + let ptr2 = vec2.as_ptr().cast::(); + let len2 = vec2.len(); + *base.add(12).cast::() = len2; + *base.add(8).cast::<*mut u8>() = ptr2.cast_mut(); + } + WitNode::VariantValue(e) => { + *base.add(0).cast::() = (1i32) as u8; + let (t3_0, t3_1) = e; + *base.add(8).cast::() = _rt::as_i32(t3_0); + match t3_1 { + Some(e) => { + *base.add(12).cast::() = (1i32) as u8; + *base.add(16).cast::() = _rt::as_i32(e); + } + None => { + *base.add(12).cast::() = (0i32) as u8; + } + }; + } + WitNode::EnumValue(e) => { + *base.add(0).cast::() = (2i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitNode::FlagsValue(e) => { + *base.add(0).cast::() = (3i32) as u8; + let vec4 = e; + let len4 = vec4.len(); + let layout4 = _rt::alloc::Layout::from_size_align_unchecked( + vec4.len() * 1, + 1, + ); + let result4 = if layout4.size() != 0 { + let ptr = _rt::alloc::alloc(layout4).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout4); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec4.into_iter().enumerate() { + let base = result4.add(i * 1); + { + *base.add(0).cast::() = (match e { + true => 1, + false => 0, + }) as u8; + } + } + *base.add(12).cast::() = len4; + *base.add(8).cast::<*mut u8>() = result4; + cleanup_list.extend_from_slice(&[(result4, layout4)]); + } + WitNode::TupleValue(e) => { + *base.add(0).cast::() = (4i32) as u8; + let vec5 = e; + let ptr5 = vec5.as_ptr().cast::(); + let len5 = vec5.len(); + *base.add(12).cast::() = len5; + *base.add(8).cast::<*mut u8>() = ptr5.cast_mut(); + } + WitNode::ListValue(e) => { + *base.add(0).cast::() = (5i32) as u8; + let vec6 = e; + let ptr6 = vec6.as_ptr().cast::(); + let len6 = vec6.len(); + *base.add(12).cast::() = len6; + *base.add(8).cast::<*mut u8>() = ptr6.cast_mut(); + } + WitNode::OptionValue(e) => { + *base.add(0).cast::() = (6i32) as u8; + match e { + Some(e) => { + *base.add(8).cast::() = (1i32) as u8; + *base.add(12).cast::() = _rt::as_i32(e); + } + None => { + *base.add(8).cast::() = (0i32) as u8; + } + }; + } + WitNode::ResultValue(e) => { + *base.add(0).cast::() = (7i32) as u8; + match e { + Ok(e) => { + *base.add(8).cast::() = (0i32) as u8; + match e { + Some(e) => { + *base.add(12).cast::() = (1i32) as u8; + *base.add(16).cast::() = _rt::as_i32(e); + } + None => { + *base.add(12).cast::() = (0i32) as u8; + } + }; + } + Err(e) => { + *base.add(8).cast::() = (1i32) as u8; + match e { + Some(e) => { + *base.add(12).cast::() = (1i32) as u8; + *base.add(16).cast::() = _rt::as_i32(e); + } + None => { + *base.add(12).cast::() = (0i32) as u8; + } + }; + } + }; + } + WitNode::PrimU8(e) => { + *base.add(0).cast::() = (8i32) as u8; + *base.add(8).cast::() = (_rt::as_i32(e)) as u8; + } + WitNode::PrimU16(e) => { + *base.add(0).cast::() = (9i32) as u8; + *base.add(8).cast::() = (_rt::as_i32(e)) as u16; + } + WitNode::PrimU32(e) => { + *base.add(0).cast::() = (10i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitNode::PrimU64(e) => { + *base.add(0).cast::() = (11i32) as u8; + *base.add(8).cast::() = _rt::as_i64(e); + } + WitNode::PrimS8(e) => { + *base.add(0).cast::() = (12i32) as u8; + *base.add(8).cast::() = (_rt::as_i32(e)) as u8; + } + WitNode::PrimS16(e) => { + *base.add(0).cast::() = (13i32) as u8; + *base.add(8).cast::() = (_rt::as_i32(e)) as u16; + } + WitNode::PrimS32(e) => { + *base.add(0).cast::() = (14i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitNode::PrimS64(e) => { + *base.add(0).cast::() = (15i32) as u8; + *base.add(8).cast::() = _rt::as_i64(e); + } + WitNode::PrimFloat32(e) => { + *base.add(0).cast::() = (16i32) as u8; + *base.add(8).cast::() = _rt::as_f32(e); + } + WitNode::PrimFloat64(e) => { + *base.add(0).cast::() = (17i32) as u8; + *base.add(8).cast::() = _rt::as_f64(e); + } + WitNode::PrimChar(e) => { + *base.add(0).cast::() = (18i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitNode::PrimBool(e) => { + *base.add(0).cast::() = (19i32) as u8; + *base.add(8).cast::() = (match e { + true => 1, + false => 0, + }) as u8; + } + WitNode::PrimString(e) => { + *base.add(0).cast::() = (20i32) as u8; + let vec7 = e; + let ptr7 = vec7.as_ptr().cast::(); + let len7 = vec7.len(); + *base.add(12).cast::() = len7; + *base.add(8).cast::<*mut u8>() = ptr7.cast_mut(); + } + WitNode::Handle(e) => { + *base.add(0).cast::() = (21i32) as u8; + let (t8_0, t8_1) = e; + let Uri { value: value9 } = t8_0; + let vec10 = value9; + let ptr10 = vec10.as_ptr().cast::(); + let len10 = vec10.len(); + *base.add(12).cast::() = len10; + *base.add(8).cast::<*mut u8>() = ptr10.cast_mut(); + *base.add(16).cast::() = _rt::as_i64(t8_1); + } + } + } + } + let WitType { nodes: nodes12 } = typ0; + let vec26 = nodes12; + let len26 = vec26.len(); + let layout26 = _rt::alloc::Layout::from_size_align_unchecked( + vec26.len() * 24, + 8, + ); + let result26 = if layout26.size() != 0 { + let ptr = _rt::alloc::alloc(layout26).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout26); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec26.into_iter().enumerate() { + let base = result26.add(i * 24); + { + match e { + WitTypeNode::RecordType(e) => { + *base.add(0).cast::() = (0i32) as u8; + let vec15 = e; + let len15 = vec15.len(); + let layout15 = _rt::alloc::Layout::from_size_align_unchecked( + vec15.len() * 12, + 4, + ); + let result15 = if layout15.size() != 0 { + let ptr = _rt::alloc::alloc(layout15).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout15); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec15.into_iter().enumerate() { + let base = result15.add(i * 12); + { + let (t13_0, t13_1) = e; + let vec14 = t13_0; + let ptr14 = vec14.as_ptr().cast::(); + let len14 = vec14.len(); + *base.add(4).cast::() = len14; + *base.add(0).cast::<*mut u8>() = ptr14.cast_mut(); + *base.add(8).cast::() = _rt::as_i32(t13_1); + } + } + *base.add(12).cast::() = len15; + *base.add(8).cast::<*mut u8>() = result15; + cleanup_list.extend_from_slice(&[(result15, layout15)]); + } + WitTypeNode::VariantType(e) => { + *base.add(0).cast::() = (1i32) as u8; + let vec18 = e; + let len18 = vec18.len(); + let layout18 = _rt::alloc::Layout::from_size_align_unchecked( + vec18.len() * 16, + 4, + ); + let result18 = if layout18.size() != 0 { + let ptr = _rt::alloc::alloc(layout18).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout18); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec18.into_iter().enumerate() { + let base = result18.add(i * 16); + { + let (t16_0, t16_1) = e; + let vec17 = t16_0; + let ptr17 = vec17.as_ptr().cast::(); + let len17 = vec17.len(); + *base.add(4).cast::() = len17; + *base.add(0).cast::<*mut u8>() = ptr17.cast_mut(); + match t16_1 { + Some(e) => { + *base.add(8).cast::() = (1i32) as u8; + *base.add(12).cast::() = _rt::as_i32(e); + } + None => { + *base.add(8).cast::() = (0i32) as u8; + } + }; + } + } + *base.add(12).cast::() = len18; + *base.add(8).cast::<*mut u8>() = result18; + cleanup_list.extend_from_slice(&[(result18, layout18)]); + } + WitTypeNode::EnumType(e) => { + *base.add(0).cast::() = (2i32) as u8; + let vec20 = e; + let len20 = vec20.len(); + let layout20 = _rt::alloc::Layout::from_size_align_unchecked( + vec20.len() * 8, + 4, + ); + let result20 = if layout20.size() != 0 { + let ptr = _rt::alloc::alloc(layout20).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout20); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec20.into_iter().enumerate() { + let base = result20.add(i * 8); + { + let vec19 = e; + let ptr19 = vec19.as_ptr().cast::(); + let len19 = vec19.len(); + *base.add(4).cast::() = len19; + *base.add(0).cast::<*mut u8>() = ptr19.cast_mut(); + } + } + *base.add(12).cast::() = len20; + *base.add(8).cast::<*mut u8>() = result20; + cleanup_list.extend_from_slice(&[(result20, layout20)]); + } + WitTypeNode::FlagsType(e) => { + *base.add(0).cast::() = (3i32) as u8; + let vec22 = e; + let len22 = vec22.len(); + let layout22 = _rt::alloc::Layout::from_size_align_unchecked( + vec22.len() * 8, + 4, + ); + let result22 = if layout22.size() != 0 { + let ptr = _rt::alloc::alloc(layout22).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout22); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec22.into_iter().enumerate() { + let base = result22.add(i * 8); + { + let vec21 = e; + let ptr21 = vec21.as_ptr().cast::(); + let len21 = vec21.len(); + *base.add(4).cast::() = len21; + *base.add(0).cast::<*mut u8>() = ptr21.cast_mut(); + } + } + *base.add(12).cast::() = len22; + *base.add(8).cast::<*mut u8>() = result22; + cleanup_list.extend_from_slice(&[(result22, layout22)]); + } + WitTypeNode::TupleType(e) => { + *base.add(0).cast::() = (4i32) as u8; + let vec23 = e; + let ptr23 = vec23.as_ptr().cast::(); + let len23 = vec23.len(); + *base.add(12).cast::() = len23; + *base.add(8).cast::<*mut u8>() = ptr23.cast_mut(); + } + WitTypeNode::ListType(e) => { + *base.add(0).cast::() = (5i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitTypeNode::OptionType(e) => { + *base.add(0).cast::() = (6i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitTypeNode::ResultType(e) => { + *base.add(0).cast::() = (7i32) as u8; + let (t24_0, t24_1) = e; + match t24_0 { + Some(e) => { + *base.add(8).cast::() = (1i32) as u8; + *base.add(12).cast::() = _rt::as_i32(e); + } + None => { + *base.add(8).cast::() = (0i32) as u8; + } + }; + match t24_1 { + Some(e) => { + *base.add(16).cast::() = (1i32) as u8; + *base.add(20).cast::() = _rt::as_i32(e); + } + None => { + *base.add(16).cast::() = (0i32) as u8; + } + }; + } + WitTypeNode::PrimU8Type => { + *base.add(0).cast::() = (8i32) as u8; + } + WitTypeNode::PrimU16Type => { + *base.add(0).cast::() = (9i32) as u8; + } + WitTypeNode::PrimU32Type => { + *base.add(0).cast::() = (10i32) as u8; + } + WitTypeNode::PrimU64Type => { + *base.add(0).cast::() = (11i32) as u8; + } + WitTypeNode::PrimS8Type => { + *base.add(0).cast::() = (12i32) as u8; + } + WitTypeNode::PrimS16Type => { + *base.add(0).cast::() = (13i32) as u8; + } + WitTypeNode::PrimS32Type => { + *base.add(0).cast::() = (14i32) as u8; + } + WitTypeNode::PrimS64Type => { + *base.add(0).cast::() = (15i32) as u8; + } + WitTypeNode::PrimF32Type => { + *base.add(0).cast::() = (16i32) as u8; + } + WitTypeNode::PrimF64Type => { + *base.add(0).cast::() = (17i32) as u8; + } + WitTypeNode::PrimCharType => { + *base.add(0).cast::() = (18i32) as u8; + } + WitTypeNode::PrimBoolType => { + *base.add(0).cast::() = (19i32) as u8; + } + WitTypeNode::PrimStringType => { + *base.add(0).cast::() = (20i32) as u8; + } + WitTypeNode::HandleType(e) => { + *base.add(0).cast::() = (21i32) as u8; + let (t25_0, t25_1) = e; + *base.add(8).cast::() = _rt::as_i64(t25_0); + *base.add(16).cast::() = (t25_1.clone() as i32) as u8; + } + } + } + } + let ptr27 = ret_area.0.as_mut_ptr().cast::(); + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] + extern "C" { + #[link_name = "extract-value"] + fn wit_import( + _: *mut u8, + _: usize, + _: *mut u8, + _: usize, + _: *mut u8, + ); + } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import( + _: *mut u8, + _: usize, + _: *mut u8, + _: usize, + _: *mut u8, + ) { + unreachable!() + } + wit_import(result11, len11, result26, len26, ptr27); + let l28 = *ptr27.add(0).cast::<*mut u8>(); + let l29 = *ptr27.add(4).cast::(); + let base75 = l28; + let len75 = l29; + let mut result75 = _rt::Vec::with_capacity(len75); + for i in 0..len75 { + let base = base75.add(i * 24); + let e75 = { + let l30 = i32::from(*base.add(0).cast::()); + let v74 = match l30 { + 0 => { + let e74 = { + let l31 = *base.add(8).cast::<*mut u8>(); + let l32 = *base.add(12).cast::(); + let len33 = l32; + _rt::Vec::from_raw_parts(l31.cast(), len33, len33) + }; + WitNode::RecordValue(e74) + } + 1 => { + let e74 = { + let l34 = *base.add(8).cast::(); + let l35 = i32::from(*base.add(12).cast::()); + ( + l34 as u32, + match l35 { + 0 => None, + 1 => { + let e = { + let l36 = *base.add(16).cast::(); + l36 + }; + Some(e) + } + _ => _rt::invalid_enum_discriminant(), + }, + ) + }; + WitNode::VariantValue(e74) + } + 2 => { + let e74 = { + let l37 = *base.add(8).cast::(); + l37 as u32 + }; + WitNode::EnumValue(e74) + } + 3 => { + let e74 = { + let l38 = *base.add(8).cast::<*mut u8>(); + let l39 = *base.add(12).cast::(); + let base41 = l38; + let len41 = l39; + let mut result41 = _rt::Vec::with_capacity(len41); + for i in 0..len41 { + let base = base41.add(i * 1); + let e41 = { + let l40 = i32::from(*base.add(0).cast::()); + _rt::bool_lift(l40 as u8) + }; + result41.push(e41); + } + _rt::cabi_dealloc(base41, len41 * 1, 1); + result41 + }; + WitNode::FlagsValue(e74) + } + 4 => { + let e74 = { + let l42 = *base.add(8).cast::<*mut u8>(); + let l43 = *base.add(12).cast::(); + let len44 = l43; + _rt::Vec::from_raw_parts(l42.cast(), len44, len44) + }; + WitNode::TupleValue(e74) + } + 5 => { + let e74 = { + let l45 = *base.add(8).cast::<*mut u8>(); + let l46 = *base.add(12).cast::(); + let len47 = l46; + _rt::Vec::from_raw_parts(l45.cast(), len47, len47) + }; + WitNode::ListValue(e74) + } + 6 => { + let e74 = { + let l48 = i32::from(*base.add(8).cast::()); + match l48 { + 0 => None, + 1 => { + let e = { + let l49 = *base.add(12).cast::(); + l49 + }; + Some(e) + } + _ => _rt::invalid_enum_discriminant(), + } + }; + WitNode::OptionValue(e74) + } + 7 => { + let e74 = { + let l50 = i32::from(*base.add(8).cast::()); + match l50 { + 0 => { + let e = { + let l51 = i32::from(*base.add(12).cast::()); + match l51 { + 0 => None, + 1 => { + let e = { + let l52 = *base.add(16).cast::(); + l52 + }; + Some(e) + } + _ => _rt::invalid_enum_discriminant(), + } + }; + Ok(e) + } + 1 => { + let e = { + let l53 = i32::from(*base.add(12).cast::()); + match l53 { + 0 => None, + 1 => { + let e = { + let l54 = *base.add(16).cast::(); + l54 + }; + Some(e) + } + _ => _rt::invalid_enum_discriminant(), + } + }; + Err(e) + } + _ => _rt::invalid_enum_discriminant(), + } + }; + WitNode::ResultValue(e74) + } + 8 => { + let e74 = { + let l55 = i32::from(*base.add(8).cast::()); + l55 as u8 + }; + WitNode::PrimU8(e74) + } + 9 => { + let e74 = { + let l56 = i32::from(*base.add(8).cast::()); + l56 as u16 + }; + WitNode::PrimU16(e74) + } + 10 => { + let e74 = { + let l57 = *base.add(8).cast::(); + l57 as u32 + }; + WitNode::PrimU32(e74) + } + 11 => { + let e74 = { + let l58 = *base.add(8).cast::(); + l58 as u64 + }; + WitNode::PrimU64(e74) + } + 12 => { + let e74 = { + let l59 = i32::from(*base.add(8).cast::()); + l59 as i8 + }; + WitNode::PrimS8(e74) + } + 13 => { + let e74 = { + let l60 = i32::from(*base.add(8).cast::()); + l60 as i16 + }; + WitNode::PrimS16(e74) + } + 14 => { + let e74 = { + let l61 = *base.add(8).cast::(); + l61 + }; + WitNode::PrimS32(e74) + } + 15 => { + let e74 = { + let l62 = *base.add(8).cast::(); + l62 + }; + WitNode::PrimS64(e74) + } + 16 => { + let e74 = { + let l63 = *base.add(8).cast::(); + l63 + }; + WitNode::PrimFloat32(e74) + } + 17 => { + let e74 = { + let l64 = *base.add(8).cast::(); + l64 + }; + WitNode::PrimFloat64(e74) + } + 18 => { + let e74 = { + let l65 = *base.add(8).cast::(); + _rt::char_lift(l65 as u32) + }; + WitNode::PrimChar(e74) + } + 19 => { + let e74 = { + let l66 = i32::from(*base.add(8).cast::()); + _rt::bool_lift(l66 as u8) + }; + WitNode::PrimBool(e74) + } + 20 => { + let e74 = { + let l67 = *base.add(8).cast::<*mut u8>(); + let l68 = *base.add(12).cast::(); + let len69 = l68; + let bytes69 = _rt::Vec::from_raw_parts( + l67.cast(), + len69, + len69, + ); + _rt::string_lift(bytes69) + }; + WitNode::PrimString(e74) + } + n => { + debug_assert_eq!(n, 21, "invalid enum discriminant"); + let e74 = { + let l70 = *base.add(8).cast::<*mut u8>(); + let l71 = *base.add(12).cast::(); + let len72 = l71; + let bytes72 = _rt::Vec::from_raw_parts( + l70.cast(), + len72, + len72, + ); + let l73 = *base.add(16).cast::(); + ( + Uri { + value: _rt::string_lift(bytes72), + }, + l73 as u64, + ) + }; + WitNode::Handle(e74) + } + }; + v74 + }; + result75.push(e75); + } + _rt::cabi_dealloc(base75, len75 * 24, 8); + if layout11.size() != 0 { + _rt::alloc::dealloc(result11.cast(), layout11); + } + if layout26.size() != 0 { + _rt::alloc::dealloc(result26.cast(), layout26); + } + for (ptr, layout) in cleanup_list { + if layout.size() != 0 { + _rt::alloc::dealloc(ptr.cast(), layout); + } + } + WitValue { nodes: result75 } + } + } + #[allow(unused_unsafe, clippy::all)] + pub fn extract_type(vnt: &ValueAndType) -> WitType { + unsafe { + let mut cleanup_list = _rt::Vec::new(); + #[repr(align(4))] + struct RetArea([::core::mem::MaybeUninit; 8]); + let mut ret_area = RetArea([::core::mem::MaybeUninit::uninit(); 8]); + let ValueAndType { value: value0, typ: typ0 } = vnt; + let WitValue { nodes: nodes1 } = value0; + let vec11 = nodes1; + let len11 = vec11.len(); + let layout11 = _rt::alloc::Layout::from_size_align_unchecked( + vec11.len() * 24, + 8, + ); + let result11 = if layout11.size() != 0 { + let ptr = _rt::alloc::alloc(layout11).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout11); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec11.into_iter().enumerate() { + let base = result11.add(i * 24); + { + match e { + WitNode::RecordValue(e) => { + *base.add(0).cast::() = (0i32) as u8; + let vec2 = e; + let ptr2 = vec2.as_ptr().cast::(); + let len2 = vec2.len(); + *base.add(12).cast::() = len2; + *base.add(8).cast::<*mut u8>() = ptr2.cast_mut(); + } + WitNode::VariantValue(e) => { + *base.add(0).cast::() = (1i32) as u8; + let (t3_0, t3_1) = e; + *base.add(8).cast::() = _rt::as_i32(t3_0); + match t3_1 { + Some(e) => { + *base.add(12).cast::() = (1i32) as u8; + *base.add(16).cast::() = _rt::as_i32(e); + } + None => { + *base.add(12).cast::() = (0i32) as u8; + } + }; + } + WitNode::EnumValue(e) => { + *base.add(0).cast::() = (2i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitNode::FlagsValue(e) => { + *base.add(0).cast::() = (3i32) as u8; + let vec4 = e; + let len4 = vec4.len(); + let layout4 = _rt::alloc::Layout::from_size_align_unchecked( + vec4.len() * 1, + 1, + ); + let result4 = if layout4.size() != 0 { + let ptr = _rt::alloc::alloc(layout4).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout4); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec4.into_iter().enumerate() { + let base = result4.add(i * 1); + { + *base.add(0).cast::() = (match e { + true => 1, + false => 0, + }) as u8; + } + } + *base.add(12).cast::() = len4; + *base.add(8).cast::<*mut u8>() = result4; + cleanup_list.extend_from_slice(&[(result4, layout4)]); + } + WitNode::TupleValue(e) => { + *base.add(0).cast::() = (4i32) as u8; + let vec5 = e; + let ptr5 = vec5.as_ptr().cast::(); + let len5 = vec5.len(); + *base.add(12).cast::() = len5; + *base.add(8).cast::<*mut u8>() = ptr5.cast_mut(); + } + WitNode::ListValue(e) => { + *base.add(0).cast::() = (5i32) as u8; + let vec6 = e; + let ptr6 = vec6.as_ptr().cast::(); + let len6 = vec6.len(); + *base.add(12).cast::() = len6; + *base.add(8).cast::<*mut u8>() = ptr6.cast_mut(); + } + WitNode::OptionValue(e) => { + *base.add(0).cast::() = (6i32) as u8; + match e { + Some(e) => { + *base.add(8).cast::() = (1i32) as u8; + *base.add(12).cast::() = _rt::as_i32(e); + } + None => { + *base.add(8).cast::() = (0i32) as u8; + } + }; + } + WitNode::ResultValue(e) => { + *base.add(0).cast::() = (7i32) as u8; + match e { + Ok(e) => { + *base.add(8).cast::() = (0i32) as u8; + match e { + Some(e) => { + *base.add(12).cast::() = (1i32) as u8; + *base.add(16).cast::() = _rt::as_i32(e); + } + None => { + *base.add(12).cast::() = (0i32) as u8; + } + }; + } + Err(e) => { + *base.add(8).cast::() = (1i32) as u8; + match e { + Some(e) => { + *base.add(12).cast::() = (1i32) as u8; + *base.add(16).cast::() = _rt::as_i32(e); + } + None => { + *base.add(12).cast::() = (0i32) as u8; + } + }; + } + }; + } + WitNode::PrimU8(e) => { + *base.add(0).cast::() = (8i32) as u8; + *base.add(8).cast::() = (_rt::as_i32(e)) as u8; + } + WitNode::PrimU16(e) => { + *base.add(0).cast::() = (9i32) as u8; + *base.add(8).cast::() = (_rt::as_i32(e)) as u16; + } + WitNode::PrimU32(e) => { + *base.add(0).cast::() = (10i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitNode::PrimU64(e) => { + *base.add(0).cast::() = (11i32) as u8; + *base.add(8).cast::() = _rt::as_i64(e); + } + WitNode::PrimS8(e) => { + *base.add(0).cast::() = (12i32) as u8; + *base.add(8).cast::() = (_rt::as_i32(e)) as u8; + } + WitNode::PrimS16(e) => { + *base.add(0).cast::() = (13i32) as u8; + *base.add(8).cast::() = (_rt::as_i32(e)) as u16; + } + WitNode::PrimS32(e) => { + *base.add(0).cast::() = (14i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitNode::PrimS64(e) => { + *base.add(0).cast::() = (15i32) as u8; + *base.add(8).cast::() = _rt::as_i64(e); + } + WitNode::PrimFloat32(e) => { + *base.add(0).cast::() = (16i32) as u8; + *base.add(8).cast::() = _rt::as_f32(e); + } + WitNode::PrimFloat64(e) => { + *base.add(0).cast::() = (17i32) as u8; + *base.add(8).cast::() = _rt::as_f64(e); + } + WitNode::PrimChar(e) => { + *base.add(0).cast::() = (18i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitNode::PrimBool(e) => { + *base.add(0).cast::() = (19i32) as u8; + *base.add(8).cast::() = (match e { + true => 1, + false => 0, + }) as u8; + } + WitNode::PrimString(e) => { + *base.add(0).cast::() = (20i32) as u8; + let vec7 = e; + let ptr7 = vec7.as_ptr().cast::(); + let len7 = vec7.len(); + *base.add(12).cast::() = len7; + *base.add(8).cast::<*mut u8>() = ptr7.cast_mut(); + } + WitNode::Handle(e) => { + *base.add(0).cast::() = (21i32) as u8; + let (t8_0, t8_1) = e; + let Uri { value: value9 } = t8_0; + let vec10 = value9; + let ptr10 = vec10.as_ptr().cast::(); + let len10 = vec10.len(); + *base.add(12).cast::() = len10; + *base.add(8).cast::<*mut u8>() = ptr10.cast_mut(); + *base.add(16).cast::() = _rt::as_i64(t8_1); + } + } + } + } + let WitType { nodes: nodes12 } = typ0; + let vec26 = nodes12; + let len26 = vec26.len(); + let layout26 = _rt::alloc::Layout::from_size_align_unchecked( + vec26.len() * 24, + 8, + ); + let result26 = if layout26.size() != 0 { + let ptr = _rt::alloc::alloc(layout26).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout26); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec26.into_iter().enumerate() { + let base = result26.add(i * 24); + { + match e { + WitTypeNode::RecordType(e) => { + *base.add(0).cast::() = (0i32) as u8; + let vec15 = e; + let len15 = vec15.len(); + let layout15 = _rt::alloc::Layout::from_size_align_unchecked( + vec15.len() * 12, + 4, + ); + let result15 = if layout15.size() != 0 { + let ptr = _rt::alloc::alloc(layout15).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout15); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec15.into_iter().enumerate() { + let base = result15.add(i * 12); + { + let (t13_0, t13_1) = e; + let vec14 = t13_0; + let ptr14 = vec14.as_ptr().cast::(); + let len14 = vec14.len(); + *base.add(4).cast::() = len14; + *base.add(0).cast::<*mut u8>() = ptr14.cast_mut(); + *base.add(8).cast::() = _rt::as_i32(t13_1); + } + } + *base.add(12).cast::() = len15; + *base.add(8).cast::<*mut u8>() = result15; + cleanup_list.extend_from_slice(&[(result15, layout15)]); + } + WitTypeNode::VariantType(e) => { + *base.add(0).cast::() = (1i32) as u8; + let vec18 = e; + let len18 = vec18.len(); + let layout18 = _rt::alloc::Layout::from_size_align_unchecked( + vec18.len() * 16, + 4, + ); + let result18 = if layout18.size() != 0 { + let ptr = _rt::alloc::alloc(layout18).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout18); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec18.into_iter().enumerate() { + let base = result18.add(i * 16); + { + let (t16_0, t16_1) = e; + let vec17 = t16_0; + let ptr17 = vec17.as_ptr().cast::(); + let len17 = vec17.len(); + *base.add(4).cast::() = len17; + *base.add(0).cast::<*mut u8>() = ptr17.cast_mut(); + match t16_1 { + Some(e) => { + *base.add(8).cast::() = (1i32) as u8; + *base.add(12).cast::() = _rt::as_i32(e); + } + None => { + *base.add(8).cast::() = (0i32) as u8; + } + }; + } + } + *base.add(12).cast::() = len18; + *base.add(8).cast::<*mut u8>() = result18; + cleanup_list.extend_from_slice(&[(result18, layout18)]); + } + WitTypeNode::EnumType(e) => { + *base.add(0).cast::() = (2i32) as u8; + let vec20 = e; + let len20 = vec20.len(); + let layout20 = _rt::alloc::Layout::from_size_align_unchecked( + vec20.len() * 8, + 4, + ); + let result20 = if layout20.size() != 0 { + let ptr = _rt::alloc::alloc(layout20).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout20); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec20.into_iter().enumerate() { + let base = result20.add(i * 8); + { + let vec19 = e; + let ptr19 = vec19.as_ptr().cast::(); + let len19 = vec19.len(); + *base.add(4).cast::() = len19; + *base.add(0).cast::<*mut u8>() = ptr19.cast_mut(); + } + } + *base.add(12).cast::() = len20; + *base.add(8).cast::<*mut u8>() = result20; + cleanup_list.extend_from_slice(&[(result20, layout20)]); + } + WitTypeNode::FlagsType(e) => { + *base.add(0).cast::() = (3i32) as u8; + let vec22 = e; + let len22 = vec22.len(); + let layout22 = _rt::alloc::Layout::from_size_align_unchecked( + vec22.len() * 8, + 4, + ); + let result22 = if layout22.size() != 0 { + let ptr = _rt::alloc::alloc(layout22).cast::(); + if ptr.is_null() { + _rt::alloc::handle_alloc_error(layout22); + } + ptr + } else { + ::core::ptr::null_mut() + }; + for (i, e) in vec22.into_iter().enumerate() { + let base = result22.add(i * 8); + { + let vec21 = e; + let ptr21 = vec21.as_ptr().cast::(); + let len21 = vec21.len(); + *base.add(4).cast::() = len21; + *base.add(0).cast::<*mut u8>() = ptr21.cast_mut(); + } + } + *base.add(12).cast::() = len22; + *base.add(8).cast::<*mut u8>() = result22; + cleanup_list.extend_from_slice(&[(result22, layout22)]); + } + WitTypeNode::TupleType(e) => { + *base.add(0).cast::() = (4i32) as u8; + let vec23 = e; + let ptr23 = vec23.as_ptr().cast::(); + let len23 = vec23.len(); + *base.add(12).cast::() = len23; + *base.add(8).cast::<*mut u8>() = ptr23.cast_mut(); + } + WitTypeNode::ListType(e) => { + *base.add(0).cast::() = (5i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitTypeNode::OptionType(e) => { + *base.add(0).cast::() = (6i32) as u8; + *base.add(8).cast::() = _rt::as_i32(e); + } + WitTypeNode::ResultType(e) => { + *base.add(0).cast::() = (7i32) as u8; + let (t24_0, t24_1) = e; + match t24_0 { + Some(e) => { + *base.add(8).cast::() = (1i32) as u8; + *base.add(12).cast::() = _rt::as_i32(e); + } + None => { + *base.add(8).cast::() = (0i32) as u8; + } + }; + match t24_1 { + Some(e) => { + *base.add(16).cast::() = (1i32) as u8; + *base.add(20).cast::() = _rt::as_i32(e); + } + None => { + *base.add(16).cast::() = (0i32) as u8; + } + }; + } + WitTypeNode::PrimU8Type => { + *base.add(0).cast::() = (8i32) as u8; + } + WitTypeNode::PrimU16Type => { + *base.add(0).cast::() = (9i32) as u8; + } + WitTypeNode::PrimU32Type => { + *base.add(0).cast::() = (10i32) as u8; + } + WitTypeNode::PrimU64Type => { + *base.add(0).cast::() = (11i32) as u8; + } + WitTypeNode::PrimS8Type => { + *base.add(0).cast::() = (12i32) as u8; + } + WitTypeNode::PrimS16Type => { + *base.add(0).cast::() = (13i32) as u8; + } + WitTypeNode::PrimS32Type => { + *base.add(0).cast::() = (14i32) as u8; + } + WitTypeNode::PrimS64Type => { + *base.add(0).cast::() = (15i32) as u8; + } + WitTypeNode::PrimF32Type => { + *base.add(0).cast::() = (16i32) as u8; + } + WitTypeNode::PrimF64Type => { + *base.add(0).cast::() = (17i32) as u8; + } + WitTypeNode::PrimCharType => { + *base.add(0).cast::() = (18i32) as u8; + } + WitTypeNode::PrimBoolType => { + *base.add(0).cast::() = (19i32) as u8; + } + WitTypeNode::PrimStringType => { + *base.add(0).cast::() = (20i32) as u8; + } + WitTypeNode::HandleType(e) => { + *base.add(0).cast::() = (21i32) as u8; + let (t25_0, t25_1) = e; + *base.add(8).cast::() = _rt::as_i64(t25_0); + *base.add(16).cast::() = (t25_1.clone() as i32) as u8; + } + } + } + } + let ptr27 = ret_area.0.as_mut_ptr().cast::(); + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "golem:rpc/types@0.1.1")] + extern "C" { + #[link_name = "extract-type"] + fn wit_import( + _: *mut u8, + _: usize, + _: *mut u8, + _: usize, + _: *mut u8, + ); + } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import( + _: *mut u8, + _: usize, + _: *mut u8, + _: usize, + _: *mut u8, + ) { + unreachable!() + } + wit_import(result11, len11, result26, len26, ptr27); + let l28 = *ptr27.add(0).cast::<*mut u8>(); + let l29 = *ptr27.add(4).cast::(); + let base70 = l28; + let len70 = l29; + let mut result70 = _rt::Vec::with_capacity(len70); + for i in 0..len70 { + let base = base70.add(i * 24); + let e70 = { + let l30 = i32::from(*base.add(0).cast::()); + let v69 = match l30 { + 0 => { + let e69 = { + let l31 = *base.add(8).cast::<*mut u8>(); + let l32 = *base.add(12).cast::(); + let base37 = l31; + let len37 = l32; + let mut result37 = _rt::Vec::with_capacity(len37); + for i in 0..len37 { + let base = base37.add(i * 12); + let e37 = { + let l33 = *base.add(0).cast::<*mut u8>(); + let l34 = *base.add(4).cast::(); + let len35 = l34; + let bytes35 = _rt::Vec::from_raw_parts( + l33.cast(), + len35, + len35, + ); + let l36 = *base.add(8).cast::(); + (_rt::string_lift(bytes35), l36) + }; + result37.push(e37); + } + _rt::cabi_dealloc(base37, len37 * 12, 4); + result37 + }; + WitTypeNode::RecordType(e69) + } + 1 => { + let e69 = { + let l38 = *base.add(8).cast::<*mut u8>(); + let l39 = *base.add(12).cast::(); + let base45 = l38; + let len45 = l39; + let mut result45 = _rt::Vec::with_capacity(len45); + for i in 0..len45 { + let base = base45.add(i * 16); + let e45 = { + let l40 = *base.add(0).cast::<*mut u8>(); + let l41 = *base.add(4).cast::(); + let len42 = l41; + let bytes42 = _rt::Vec::from_raw_parts( + l40.cast(), + len42, + len42, + ); + let l43 = i32::from(*base.add(8).cast::()); + ( + _rt::string_lift(bytes42), + match l43 { + 0 => None, + 1 => { + let e = { + let l44 = *base.add(12).cast::(); + l44 + }; + Some(e) + } + _ => _rt::invalid_enum_discriminant(), + }, + ) + }; + result45.push(e45); + } + _rt::cabi_dealloc(base45, len45 * 16, 4); + result45 + }; + WitTypeNode::VariantType(e69) + } + 2 => { + let e69 = { + let l46 = *base.add(8).cast::<*mut u8>(); + let l47 = *base.add(12).cast::(); + let base51 = l46; + let len51 = l47; + let mut result51 = _rt::Vec::with_capacity(len51); + for i in 0..len51 { + let base = base51.add(i * 8); + let e51 = { + let l48 = *base.add(0).cast::<*mut u8>(); + let l49 = *base.add(4).cast::(); + let len50 = l49; + let bytes50 = _rt::Vec::from_raw_parts( + l48.cast(), + len50, + len50, + ); + _rt::string_lift(bytes50) + }; + result51.push(e51); + } + _rt::cabi_dealloc(base51, len51 * 8, 4); + result51 + }; + WitTypeNode::EnumType(e69) + } + 3 => { + let e69 = { + let l52 = *base.add(8).cast::<*mut u8>(); + let l53 = *base.add(12).cast::(); + let base57 = l52; + let len57 = l53; + let mut result57 = _rt::Vec::with_capacity(len57); + for i in 0..len57 { + let base = base57.add(i * 8); + let e57 = { + let l54 = *base.add(0).cast::<*mut u8>(); + let l55 = *base.add(4).cast::(); + let len56 = l55; + let bytes56 = _rt::Vec::from_raw_parts( + l54.cast(), + len56, + len56, + ); + _rt::string_lift(bytes56) + }; + result57.push(e57); + } + _rt::cabi_dealloc(base57, len57 * 8, 4); + result57 + }; + WitTypeNode::FlagsType(e69) + } + 4 => { + let e69 = { + let l58 = *base.add(8).cast::<*mut u8>(); + let l59 = *base.add(12).cast::(); + let len60 = l59; + _rt::Vec::from_raw_parts(l58.cast(), len60, len60) + }; + WitTypeNode::TupleType(e69) + } + 5 => { + let e69 = { + let l61 = *base.add(8).cast::(); + l61 + }; + WitTypeNode::ListType(e69) + } + 6 => { + let e69 = { + let l62 = *base.add(8).cast::(); + l62 + }; + WitTypeNode::OptionType(e69) + } + 7 => { + let e69 = { + let l63 = i32::from(*base.add(8).cast::()); + let l65 = i32::from(*base.add(16).cast::()); + ( + match l63 { + 0 => None, + 1 => { + let e = { + let l64 = *base.add(12).cast::(); + l64 + }; + Some(e) + } + _ => _rt::invalid_enum_discriminant(), + }, + match l65 { + 0 => None, + 1 => { + let e = { + let l66 = *base.add(20).cast::(); + l66 + }; + Some(e) + } + _ => _rt::invalid_enum_discriminant(), + }, + ) + }; + WitTypeNode::ResultType(e69) + } + 8 => WitTypeNode::PrimU8Type, + 9 => WitTypeNode::PrimU16Type, + 10 => WitTypeNode::PrimU32Type, + 11 => WitTypeNode::PrimU64Type, + 12 => WitTypeNode::PrimS8Type, + 13 => WitTypeNode::PrimS16Type, + 14 => WitTypeNode::PrimS32Type, + 15 => WitTypeNode::PrimS64Type, + 16 => WitTypeNode::PrimF32Type, + 17 => WitTypeNode::PrimF64Type, + 18 => WitTypeNode::PrimCharType, + 19 => WitTypeNode::PrimBoolType, + 20 => WitTypeNode::PrimStringType, + n => { + debug_assert_eq!(n, 21, "invalid enum discriminant"); + let e69 = { + let l67 = *base.add(8).cast::(); + let l68 = i32::from(*base.add(16).cast::()); + (l67 as u64, ResourceMode::_lift(l68 as u8)) + }; + WitTypeNode::HandleType(e69) + } + }; + v69 + }; + result70.push(e70); + } + _rt::cabi_dealloc(base70, len70 * 24, 8); + if layout11.size() != 0 { + _rt::alloc::dealloc(result11.cast(), layout11); + } + if layout26.size() != 0 { + _rt::alloc::dealloc(result26.cast(), layout26); + } + for (ptr, layout) in cleanup_list { + if layout.size() != 0 { + _rt::alloc::dealloc(ptr.cast(), layout); + } + } + WitType { nodes: result70 } + } + } } } } @@ -2360,37 +3996,48 @@ mod _rt { extern crate alloc as alloc_crate; } #[cfg(target_arch = "wasm32")] -#[link_section = "component-type:wit-bindgen:0.36.0:golem:rpc@0.1.0:wit-value-world:encoded world"] +#[link_section = "component-type:wit-bindgen:0.36.0:golem:rpc@0.1.1:wit-value:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 1322] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xa4\x09\x01A\x02\x01\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 1875] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xd3\x0d\x01A\x02\x01\ A\x05\x01B\x0a\x04\0\x08pollable\x03\x01\x01h\0\x01@\x01\x04self\x01\0\x7f\x04\0\ \x16[method]pollable.ready\x01\x02\x01@\x01\x04self\x01\x01\0\x04\0\x16[method]p\ ollable.block\x01\x03\x01p\x01\x01py\x01@\x01\x02in\x04\0\x05\x04\0\x04poll\x01\x06\ -\x03\0\x12wasi:io/poll@0.2.0\x05\0\x02\x03\0\0\x08pollable\x01B*\x02\x03\x02\x01\ -\x01\x04\0\x08pollable\x03\0\0\x01z\x04\0\x0anode-index\x03\0\x02\x01r\x01\x05va\ -lues\x04\0\x03uri\x03\0\x04\x01p\x03\x01k\x03\x01o\x02y\x07\x01p\x7f\x01j\x01\x07\ -\x01\x07\x01o\x02\x05w\x01q\x16\x0crecord-value\x01\x06\0\x0dvariant-value\x01\x08\ -\0\x0aenum-value\x01y\0\x0bflags-value\x01\x09\0\x0btuple-value\x01\x06\0\x0alis\ -t-value\x01\x06\0\x0coption-value\x01\x07\0\x0cresult-value\x01\x0a\0\x07prim-u8\ -\x01}\0\x08prim-u16\x01{\0\x08prim-u32\x01y\0\x08prim-u64\x01w\0\x07prim-s8\x01~\ -\0\x08prim-s16\x01|\0\x08prim-s32\x01z\0\x08prim-s64\x01x\0\x0cprim-float32\x01v\ -\0\x0cprim-float64\x01u\0\x09prim-char\x01t\0\x09prim-bool\x01\x7f\0\x0bprim-str\ -ing\x01s\0\x06handle\x01\x0b\0\x04\0\x08wit-node\x03\0\x0c\x01p\x0d\x01r\x01\x05\ -nodes\x0e\x04\0\x09wit-value\x03\0\x0f\x01q\x04\x0eprotocol-error\x01s\0\x06deni\ -ed\x01s\0\x09not-found\x01s\0\x15remote-internal-error\x01s\0\x04\0\x09rpc-error\ -\x03\0\x11\x04\0\x08wasm-rpc\x03\x01\x04\0\x14future-invoke-result\x03\x01\x01i\x13\ -\x01@\x01\x08location\x05\0\x15\x04\0\x15[constructor]wasm-rpc\x01\x16\x01h\x13\x01\ -p\x10\x01j\x01\x10\x01\x12\x01@\x03\x04self\x17\x0dfunction-names\x0ffunction-pa\ -rams\x18\0\x19\x04\0![method]wasm-rpc.invoke-and-await\x01\x1a\x01j\0\x01\x12\x01\ -@\x03\x04self\x17\x0dfunction-names\x0ffunction-params\x18\0\x1b\x04\0\x17[metho\ -d]wasm-rpc.invoke\x01\x1c\x01i\x14\x01@\x03\x04self\x17\x0dfunction-names\x0ffun\ -ction-params\x18\0\x1d\x04\0'[method]wasm-rpc.async-invoke-and-await\x01\x1e\x01\ -h\x14\x01i\x01\x01@\x01\x04self\x1f\0\x20\x04\0&[method]future-invoke-result.sub\ -scribe\x01!\x01k\x19\x01@\x01\x04self\x1f\0\"\x04\0\x20[method]future-invoke-res\ -ult.get\x01#\x03\0\x15golem:rpc/types@0.1.0\x05\x02\x04\0\x1fgolem:rpc/wit-value\ --world@0.1.0\x04\0\x0b\x15\x01\0\x0fwit-value-world\x03\0\0\0G\x09producers\x01\x0c\ -processed-by\x02\x0dwit-component\x070.220.0\x10wit-bindgen-rust\x060.36.0"; +\x03\0\x12wasi:io/poll@0.2.0\x05\0\x02\x03\0\0\x08pollable\x01B@\x02\x03\x02\x01\ +\x01\x04\0\x08pollable\x03\0\0\x01z\x04\0\x0anode-index\x03\0\x02\x01w\x04\0\x0b\ +resource-id\x03\0\x04\x01m\x02\x05owned\x08borrowed\x04\0\x0dresource-mode\x03\0\ +\x06\x01o\x02s\x03\x01p\x08\x01k\x03\x01o\x02s\x0a\x01p\x0b\x01ps\x01p\x03\x01o\x02\ +\x0a\x0a\x01o\x02\x05\x07\x01q\x16\x0brecord-type\x01\x09\0\x0cvariant-type\x01\x0c\ +\0\x09enum-type\x01\x0d\0\x0aflags-type\x01\x0d\0\x0atuple-type\x01\x0e\0\x09lis\ +t-type\x01\x03\0\x0boption-type\x01\x03\0\x0bresult-type\x01\x0f\0\x0cprim-u8-ty\ +pe\0\0\x0dprim-u16-type\0\0\x0dprim-u32-type\0\0\x0dprim-u64-type\0\0\x0cprim-s8\ +-type\0\0\x0dprim-s16-type\0\0\x0dprim-s32-type\0\0\x0dprim-s64-type\0\0\x0dprim\ +-f32-type\0\0\x0dprim-f64-type\0\0\x0eprim-char-type\0\0\x0eprim-bool-type\0\0\x10\ +prim-string-type\0\0\x0bhandle-type\x01\x10\0\x04\0\x0dwit-type-node\x03\0\x11\x01\ +p\x12\x01r\x01\x05nodes\x13\x04\0\x08wit-type\x03\0\x14\x01r\x01\x05values\x04\0\ +\x03uri\x03\0\x16\x01o\x02y\x0a\x01p\x7f\x01j\x01\x0a\x01\x0a\x01o\x02\x17w\x01q\ +\x16\x0crecord-value\x01\x0e\0\x0dvariant-value\x01\x18\0\x0aenum-value\x01y\0\x0b\ +flags-value\x01\x19\0\x0btuple-value\x01\x0e\0\x0alist-value\x01\x0e\0\x0coption\ +-value\x01\x0a\0\x0cresult-value\x01\x1a\0\x07prim-u8\x01}\0\x08prim-u16\x01{\0\x08\ +prim-u32\x01y\0\x08prim-u64\x01w\0\x07prim-s8\x01~\0\x08prim-s16\x01|\0\x08prim-\ +s32\x01z\0\x08prim-s64\x01x\0\x0cprim-float32\x01v\0\x0cprim-float64\x01u\0\x09p\ +rim-char\x01t\0\x09prim-bool\x01\x7f\0\x0bprim-string\x01s\0\x06handle\x01\x1b\0\ +\x04\0\x08wit-node\x03\0\x1c\x01p\x1d\x01r\x01\x05nodes\x1e\x04\0\x09wit-value\x03\ +\0\x1f\x01r\x02\x05value\x20\x03typ\x15\x04\0\x0evalue-and-type\x03\0!\x01q\x04\x0e\ +protocol-error\x01s\0\x06denied\x01s\0\x09not-found\x01s\0\x15remote-internal-er\ +ror\x01s\0\x04\0\x09rpc-error\x03\0#\x04\0\x08wasm-rpc\x03\x01\x04\0\x14future-i\ +nvoke-result\x03\x01\x01i%\x01@\x01\x08location\x17\0'\x04\0\x15[constructor]was\ +m-rpc\x01(\x01h%\x01p\x20\x01j\x01\x20\x01$\x01@\x03\x04self)\x0dfunction-names\x0f\ +function-params*\0+\x04\0![method]wasm-rpc.invoke-and-await\x01,\x01j\0\x01$\x01\ +@\x03\x04self)\x0dfunction-names\x0ffunction-params*\0-\x04\0\x17[method]wasm-rp\ +c.invoke\x01.\x01i&\x01@\x03\x04self)\x0dfunction-names\x0ffunction-params*\0/\x04\ +\0'[method]wasm-rpc.async-invoke-and-await\x010\x01h&\x01i\x01\x01@\x01\x04self1\ +\02\x04\0&[method]future-invoke-result.subscribe\x013\x01k+\x01@\x01\x04self1\04\ +\x04\0\x20[method]future-invoke-result.get\x015\x01@\x01\x03vnt\"\0\x20\x04\0\x0d\ +extract-value\x016\x01@\x01\x03vnt\"\0\x15\x04\0\x0cextract-type\x017\x03\0\x15g\ +olem:rpc/types@0.1.1\x05\x02\x04\0\x19golem:rpc/wit-value@0.1.1\x04\0\x0b\x0f\x01\ +\0\x09wit-value\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\ +\x070.220.0\x10wit-bindgen-rust\x060.36.0"; #[inline(never)] #[doc(hidden)] pub fn __link_custom_section_describing_imports() { diff --git a/wasm-rpc/src/lib.rs b/wasm-rpc/src/lib.rs index 0587eca7e0..2945e82db1 100644 --- a/wasm-rpc/src/lib.rs +++ b/wasm-rpc/src/lib.rs @@ -77,7 +77,8 @@ pub use extractor::{WitNodePointer, WitValueExtractor}; #[cfg(not(feature = "host-bindings"))] #[cfg(feature = "stub")] pub use bindings::golem::rpc::types::{ - FutureInvokeResult, NodeIndex, RpcError, Uri, WasmRpc, WitNode, WitValue, + FutureInvokeResult, NodeIndex, ResourceMode, RpcError, Uri, WasmRpc, WitNode, WitType, + WitTypeNode, WitValue, }; #[cfg(not(feature = "host-bindings"))] #[cfg(feature = "stub")] @@ -92,7 +93,7 @@ mod generated { bindgen!({ path: "wit", - world: "wit-value-world", + world: "wit-value", tracing: false, async: true, trappable_imports: true, @@ -110,7 +111,8 @@ pub use generated::golem; #[cfg(feature = "host-bindings")] pub use generated::golem::rpc::types::{ - Host, HostWasmRpc, NodeIndex, RpcError, Uri, WitNode, WitValue, + Host, HostWasmRpc, NodeIndex, ResourceMode, RpcError, Uri, WitNode, WitType, WitTypeNode, + WitValue, }; #[cfg(feature = "host-bindings")] diff --git a/wasm-rpc/src/value_and_type.rs b/wasm-rpc/src/value_and_type.rs index 6c18e0bee0..31738d3da5 100644 --- a/wasm-rpc/src/value_and_type.rs +++ b/wasm-rpc/src/value_and_type.rs @@ -12,11 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{RpcError, Value}; +use crate::{RpcError, Value, WitNode, WitType, WitTypeNode, WitValue}; use golem_wasm_ast::analysis::analysed_type::{ list, option, result, result_err, result_ok, tuple, variant, }; -use golem_wasm_ast::analysis::{analysed_type, AnalysedType}; +use golem_wasm_ast::analysis::{ + analysed_type, AnalysedResourceId, AnalysedResourceMode, AnalysedType, TypeEnum, TypeFlags, +}; use std::collections::HashMap; use std::time::{Duration, Instant}; use uuid::Uuid; @@ -70,7 +72,7 @@ impl From for AnalysedType { } #[cfg(feature = "host-bindings")] -impl From for crate::WitValue { +impl From for WitValue { fn from(value_and_type: ValueAndType) -> Self { value_and_type.value.into() } @@ -360,7 +362,7 @@ impl IntoValue for crate::WitValue { } #[cfg(feature = "host-bindings")] -impl IntoValue for crate::WitNode { +impl IntoValue for WitNode { fn into_value(self) -> Value { use crate::WitNode; @@ -569,3 +571,232 @@ impl IntoValue for crate::RpcError { ]) } } + +impl From for AnalysedType { + fn from(value: WitType) -> Self { + assert!(!value.nodes.is_empty()); + build_tree(&value.nodes[0], &value.nodes) + } +} + +fn build_tree(node: &WitTypeNode, nodes: &[WitTypeNode]) -> AnalysedType { + match node { + WitTypeNode::RecordType(fields) => { + let fields = fields + .iter() + .map(|(name, idx)| { + let field_type = build_tree(&nodes[*idx as usize], nodes); + analysed_type::field(name, field_type) + }) + .collect(); + analysed_type::record(fields) + } + WitTypeNode::VariantType(cases) => { + let cases = cases + .iter() + .map(|(name, idx)| match idx { + Some(idx) => { + let case_type = build_tree(&nodes[*idx as usize], nodes); + analysed_type::case(name, case_type) + } + None => analysed_type::unit_case(name), + }) + .collect(); + variant(cases) + } + WitTypeNode::EnumType(names) => AnalysedType::Enum(TypeEnum { + cases: names.clone(), + }), + WitTypeNode::FlagsType(names) => AnalysedType::Flags(TypeFlags { + names: names.clone(), + }), + WitTypeNode::TupleType(types) => { + let types = types + .iter() + .map(|idx| build_tree(&nodes[*idx as usize], nodes)) + .collect(); + tuple(types) + } + WitTypeNode::ListType(elem_type) => { + let elem_type = build_tree(&nodes[*elem_type as usize], nodes); + list(elem_type) + } + WitTypeNode::OptionType(inner_type) => { + let inner_type = build_tree(&nodes[*inner_type as usize], nodes); + option(inner_type) + } + WitTypeNode::ResultType((ok_type, err_type)) => match (ok_type, err_type) { + (Some(ok_type), Some(err_type)) => { + let ok_type = build_tree(&nodes[*ok_type as usize], nodes); + let err_type = build_tree(&nodes[*err_type as usize], nodes); + result(ok_type, err_type) + } + (None, Some(err_type)) => { + let err_type = build_tree(&nodes[*err_type as usize], nodes); + result_err(err_type) + } + (Some(ok_type), None) => { + let ok_type = build_tree(&nodes[*ok_type as usize], nodes); + result_ok(ok_type) + } + (None, None) => panic!("ResultType with no ok_type or err_type"), + }, + WitTypeNode::PrimU8Type => analysed_type::u8(), + WitTypeNode::PrimU16Type => analysed_type::u16(), + WitTypeNode::PrimU32Type => analysed_type::u32(), + WitTypeNode::PrimU64Type => analysed_type::u64(), + WitTypeNode::PrimS8Type => analysed_type::s8(), + WitTypeNode::PrimS16Type => analysed_type::s16(), + WitTypeNode::PrimS32Type => analysed_type::s32(), + WitTypeNode::PrimS64Type => analysed_type::s64(), + WitTypeNode::PrimF32Type => analysed_type::f32(), + WitTypeNode::PrimF64Type => analysed_type::f64(), + WitTypeNode::PrimCharType => analysed_type::chr(), + WitTypeNode::PrimBoolType => analysed_type::bool(), + WitTypeNode::PrimStringType => analysed_type::str(), + WitTypeNode::HandleType((id, mode)) => analysed_type::handle( + AnalysedResourceId(*id), + match mode { + crate::ResourceMode::Owned => AnalysedResourceMode::Owned, + crate::ResourceMode::Borrowed => AnalysedResourceMode::Borrowed, + }, + ), + } +} + +impl From for WitType { + fn from(value: AnalysedType) -> Self { + let mut builder = WitTypeBuilder::new(); + builder.add(value); + builder.build() + } +} + +struct WitTypeBuilder { + nodes: Vec, + mapping: HashMap, +} + +impl WitTypeBuilder { + pub fn new() -> Self { + Self { + nodes: Vec::new(), + mapping: HashMap::new(), + } + } + + pub fn add(&mut self, typ: AnalysedType) -> usize { + if let Some(idx) = self.mapping.get(&typ) { + *idx + } else { + let idx = self.nodes.len(); + self.nodes.push(WitTypeNode::PrimBoolType); // placeholder, to be replaced + let node: WitTypeNode = match typ { + AnalysedType::Variant(variant) => { + let mut cases = Vec::new(); + for pair in variant.cases { + let case_idx = pair.typ.map(|case| self.add(case) as i32); + cases.push((pair.name, case_idx)); + } + WitTypeNode::VariantType(cases) + } + AnalysedType::Result(result) => { + let ok_idx = result.ok.map(|ok| self.add(*ok) as i32); + let err_idx = result.err.map(|err| self.add(*err) as i32); + WitTypeNode::ResultType((ok_idx, err_idx)) + } + AnalysedType::Option(option) => { + let inner_idx = self.add(*option.inner) as i32; + WitTypeNode::OptionType(inner_idx) + } + AnalysedType::Enum(enm) => WitTypeNode::EnumType(enm.cases), + AnalysedType::Flags(flags) => WitTypeNode::FlagsType(flags.names), + AnalysedType::Record(record) => { + let mut fields = Vec::new(); + for field in record.fields { + fields.push((field.name, self.add(field.typ) as i32)); + } + WitTypeNode::RecordType(fields) + } + AnalysedType::Tuple(tuple) => { + let mut indices = Vec::new(); + for item in tuple.items { + indices.push(self.add(item) as i32); + } + WitTypeNode::TupleType(indices) + } + AnalysedType::List(lst) => { + let elem_idx = self.add(*lst.inner); + WitTypeNode::ListType(elem_idx as i32) + } + AnalysedType::Str(_) => WitTypeNode::PrimStringType, + AnalysedType::Chr(_) => WitTypeNode::PrimCharType, + AnalysedType::F64(_) => WitTypeNode::PrimF64Type, + AnalysedType::F32(_) => WitTypeNode::PrimF32Type, + AnalysedType::U64(_) => WitTypeNode::PrimU64Type, + AnalysedType::S64(_) => WitTypeNode::PrimS64Type, + AnalysedType::U32(_) => WitTypeNode::PrimU32Type, + AnalysedType::S32(_) => WitTypeNode::PrimS32Type, + AnalysedType::U16(_) => WitTypeNode::PrimU16Type, + AnalysedType::S16(_) => WitTypeNode::PrimS16Type, + AnalysedType::U8(_) => WitTypeNode::PrimU8Type, + AnalysedType::S8(_) => WitTypeNode::PrimS8Type, + AnalysedType::Bool(_) => WitTypeNode::PrimBoolType, + AnalysedType::Handle(handle) => WitTypeNode::HandleType(( + handle.resource_id.0, + match handle.mode { + AnalysedResourceMode::Owned => crate::ResourceMode::Owned, + AnalysedResourceMode::Borrowed => crate::ResourceMode::Borrowed, + }, + )), + }; + self.nodes[idx] = node; + idx + } + } + + pub fn build(self) -> WitType { + WitType { nodes: self.nodes } + } +} + +impl From for ValueAndType { + fn from(value: crate::golem::rpc::types::ValueAndType) -> Self { + Self { + value: value.value.into(), + typ: value.typ.into(), + } + } +} + +impl From for crate::golem::rpc::types::ValueAndType { + fn from(value: ValueAndType) -> Self { + Self { + value: value.value.into(), + typ: value.typ.into(), + } + } +} + +#[cfg(test)] +mod tests { + use crate::{IntoValue, RpcError, WitType, WitValue}; + use golem_wasm_ast::analysis::AnalysedType; + use test_r::test; + + #[test] + fn encoding_rpc_error_type() { + let typ1 = RpcError::get_type(); + let encoded: WitType = typ1.clone().into(); + let typ2: AnalysedType = encoded.into(); + assert_eq!(typ1, typ2); + } + + #[test] + fn encoding_wit_value_type() { + let typ1 = WitValue::get_type(); + let encoded: WitType = typ1.clone().into(); + let typ2: AnalysedType = encoded.into(); + assert_eq!(typ1, typ2); + } +} diff --git a/wasm-rpc/wit/wasm-rpc.wit b/wasm-rpc/wit/wasm-rpc.wit index 79cda439e3..fda44c4559 100644 --- a/wasm-rpc/wit/wasm-rpc.wit +++ b/wasm-rpc/wit/wasm-rpc.wit @@ -1,4 +1,4 @@ -package golem:rpc@0.1.0; +package golem:rpc@0.1.1; interface types { use wasi:io/poll@0.2.0.{pollable}; @@ -34,6 +34,47 @@ interface types { handle(tuple) } + record wit-type { + nodes: list, + } + + type resource-id = u64; + + enum resource-mode { + owned, + borrowed + } + + variant wit-type-node { + record-type(list>), + variant-type(list>>), + enum-type(list), + flags-type(list), + tuple-type(list), + list-type(node-index), + option-type(node-index), + result-type(tuple, option>), + prim-u8-type, + prim-u16-type, + prim-u32-type, + prim-u64-type, + prim-s8-type, + prim-s16-type, + prim-s32-type, + prim-s64-type, + prim-f32-type, + prim-f64-type, + prim-char-type, + prim-bool-type, + prim-string-type, + handle-type(tuple) + } + + record value-and-type { + value: wit-value, + typ: wit-type + } + record uri { value: string, } @@ -58,8 +99,11 @@ interface types { subscribe: func() -> pollable; get: func() -> option>; } + + extract-value: func(vnt: value-and-type) -> wit-value; + extract-type: func(vnt: value-and-type) -> wit-type; } -world wit-value-world { +world wit-value { import types; }