diff --git a/Cargo.lock b/Cargo.lock index 5bc068c55..b75dfc8b5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,16 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli", + "gimli 0.27.2", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli 0.28.0", ] [[package]] @@ -204,12 +213,12 @@ version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ - "addr2line", + "addr2line 0.19.0", "cc", "cfg-if", "libc", "miniz_oxide 0.6.2", - "object", + "object 0.30.3", "rustc-demangle", ] @@ -230,9 +239,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "bincode" @@ -251,9 +260,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "block-buffer" @@ -329,38 +338,50 @@ checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" [[package]] name = "cap-fs-ext" -version = "1.0.14" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1742f5106155d46a41eac5f730ee189bf92fde6ae109fbf2cdb67176726ca5d" +checksum = "b779b2d0a001c125b4584ad586268fb4b92d957bff8d26d7fe0dd78283faa814" dependencies = [ "cap-primitives", "cap-std", - "io-lifetimes", + "io-lifetimes 2.0.2", "windows-sys 0.48.0", ] +[[package]] +name = "cap-net-ext" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ffc30dee200c20b4dcb80572226f42658e1d9c4b668656d7cc59c33d50e396e" +dependencies = [ + "cap-primitives", + "cap-std", + "rustix 0.38.13", + "smallvec", +] + [[package]] name = "cap-primitives" -version = "1.0.14" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42068f579028e856717d61423645c85d2d216dde8eff62c9b30140e725c79177" +checksum = "2bf30c373a3bee22c292b1b6a7a26736a38376840f1af3d2d806455edf8c3899" dependencies = [ "ambient-authority", "fs-set-times", "io-extras", - "io-lifetimes", + "io-lifetimes 2.0.2", "ipnet", "maybe-owned", - "rustix 0.37.19", + "rustix 0.38.13", "windows-sys 0.48.0", "winx", ] [[package]] name = "cap-rand" -version = "1.0.14" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3be2ededc13f42a5921c08e565b854cb5ff9b88753e2c6ec12c58a24e7e8d4e" +checksum = "577de6cff7c2a47d6b13efe5dd28bf116bd7f8f7db164ea95b7cc2640711f522" dependencies = [ "ambient-authority", "rand", @@ -368,33 +389,33 @@ dependencies = [ [[package]] name = "cap-std" -version = "1.0.14" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559ad6fab5fedcc9bd5877160e1433fcd481f8af615068d6ca49472b1201cc6c" +checksum = "84bade423fa6403efeebeafe568fdb230e8c590a275fba2ba978dd112efcf6e9" dependencies = [ "cap-primitives", "io-extras", - "io-lifetimes", - "rustix 0.37.19", + "io-lifetimes 2.0.2", + "rustix 0.38.13", ] [[package]] name = "cap-time-ext" -version = "1.0.14" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a74e04cd32787bfa3a911af745b0fd5d99d4c3fc16c64449e1622c06fa27c8e" +checksum = "f8f52b3c8f4abfe3252fd0a071f3004aaa3b18936ec97bdbd8763ce03aff6247" dependencies = [ "cap-primitives", "once_cell", - "rustix 0.37.19", + "rustix 0.38.13", "winx", ] [[package]] name = "cbindgen" -version = "0.24.3" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6358dedf60f4d9b8db43ad187391afe959746101346fe51bb978126bec61dfb" +checksum = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49" dependencies = [ "clap 3.2.25", "heck", @@ -611,18 +632,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1380172556902242d32f78ed08c98aac4f5952aef22d3684aed5c66a5db0a6fc" +checksum = "2b5bb9245ec7dcc04d03110e538d31f0969d301c9d673145f4b4d5c3478539a3" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037cca234e1ad0766fdfe43b527ec14e100414b4ccf4bb614977aa9754958f57" +checksum = "ebb18d10e5ddac43ba4ca8fd4e310938569c3e484cc01b6372b27dc5bb4dfd28" dependencies = [ "bumpalo", "cranelift-bforest", @@ -631,8 +652,8 @@ dependencies = [ "cranelift-control", "cranelift-entity", "cranelift-isle", - "gimli", - "hashbrown 0.13.2", + "gimli 0.28.0", + "hashbrown 0.14.2", "log", "regalloc2", "smallvec", @@ -641,42 +662,43 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d375e6afa8b9a304999ea8cf58424414b8e55e004571265a4f0826eba8b74f18" +checksum = "7a3ce6d22982c1b9b6b012654258bab1a13947bb12703518bef06b1a4867c3d6" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca590e72ccb8da963def6e36460cce4412032b1f03c31d1a601838d305abdc39" +checksum = "47220fd4f9a0ce23541652b6f16f83868d282602c600d14934b2a4c166b4bd80" [[package]] name = "cranelift-control" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d2d38eea4373639f4b6236a40f69820fed16c5511093cd3783bf8491a93d9cf" +checksum = "ed5a4c42672aea9b6e820046b52e47a1c05d3394a6cdf4cb3c3c4b702f954bd2" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3173c1434af23c00e4964722cf93ca8f0e6287289bf5d52110597c3ba2ea09" +checksum = "0b4e9a3296fc827f9d35135dc2c0c8dd8d8359eb1ef904bae2d55d5bcb0c9f94" dependencies = [ "serde", + "serde_derive", ] [[package]] name = "cranelift-frontend" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aec4a3a33825062eccf6eec73e852c8773220f6e4798925e19696562948beb1f" +checksum = "33ec537d0f0b8e084517f3e7bfa1d89af343d7c7df455573fca9f272d4e01267" dependencies = [ "cranelift-codegen", "log", @@ -686,15 +708,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5146b5cea4b21095a021d964b0174cf6ff5530f83e8d0a822683c7559e360b66" +checksum = "45bab6d69919d210a50331d35cc6ce111567bc040aebac63a8ae130d0400a075" [[package]] name = "cranelift-native" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cec3717ce554d3936b2101aa8eae1a2a410bd6da0f4df698a4b008fe9cf1e9" +checksum = "f32e81605f352cf37af5463f11cd7deec7b6572741931a8d372f7fdd4a744f5d" dependencies = [ "cranelift-codegen", "libc", @@ -703,9 +725,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.98.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fd2f9f1bf29ce6639ae2f477a2fe20bad0bd09289df13efeb890e8e4b9f807" +checksum = "0edaa4cbec1bc787395c074233df2652dd62f3e29d3ee60329514a0a51e6b045" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -713,7 +735,7 @@ dependencies = [ "itertools 0.10.5", "log", "smallvec", - "wasmparser 0.107.0", + "wasmparser 0.115.0", "wasmtime-types", ] @@ -756,7 +778,7 @@ dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset", + "memoffset 0.8.0", "scopeguard", ] @@ -1049,19 +1071,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "env_logger" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - [[package]] name = "equivalent" version = "1.0.1" @@ -1102,83 +1111,75 @@ dependencies = [ [[package]] name = "extism" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e81d3e7d1592412579984e773bd553703a664bbfb1ddded742bf6dfae63847" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", + "cbindgen", + "extism-convert", "extism-manifest", - "extism-runtime", + "glob", + "libc", "log", + "log4rs", + "serde", "serde_json", + "sha2", + "toml 0.8.6", + "ureq", + "url", "uuid", + "wasmtime", + "wasmtime-wasi", +] + +[[package]] +name = "extism-convert" +version = "0.2.0" +dependencies = [ + "anyhow", + "base64 0.21.5", + "prost", + "rmp-serde", + "serde", + "serde_json", ] [[package]] name = "extism-manifest" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22b0e600ec289630715ffdc11aca36a26297c3ab7908f14d5bbf3770d102bce7" +version = "1.0.0-alpha.0" dependencies = [ - "base64 0.21.0", + "base64 0.21.5", "serde", + "serde_json", ] [[package]] name = "extism-pdk" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09c20fe9cafa572607e22192bf2040849e7456664895bdc589c89387876e2067" +version = "1.0.0-beta.0" dependencies = [ "anyhow", - "base64 0.21.0", + "base64 0.21.5", + "extism-convert", "extism-manifest", "extism-pdk-derive", - "rmp-serde", "serde", "serde_json", ] [[package]] name = "extism-pdk-derive" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2be216330f7304de051e0faf1578880e9e0dc1ecbd2c0fea5765c63a079d0ba" +version = "1.0.0-beta.0" dependencies = [ "proc-macro2", "quote", "syn 2.0.38", ] -[[package]] -name = "extism-runtime" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126b884cfa74fc386eedff1095bac8ef6c2ae5efdb656e508f12a41434d0bf0c" -dependencies = [ - "anyhow", - "cbindgen", - "extism-manifest", - "glob", - "libc", - "log", - "log4rs", - "serde", - "serde_json", - "sha2", - "toml 0.7.6", - "ureq", - "url", - "uuid", - "wasmtime", - "wasmtime-wasi", -] - [[package]] name = "fallible-iterator" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" @@ -1191,25 +1192,15 @@ dependencies = [ [[package]] name = "fd-lock" -version = "3.0.12" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642" +checksum = "0b0377f1edc77dbd1118507bc7a66e4ab64d2b90c66f90726dc801e73a8c68f9" dependencies = [ "cfg-if", - "rustix 0.37.19", + "rustix 0.38.13", "windows-sys 0.48.0", ] -[[package]] -name = "file-per-thread-logger" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3cc21c33af89af0930c8cae4ade5e6fdc17b5d2c97b3d2e2edb67a1cf683f3" -dependencies = [ - "env_logger", - "log", -] - [[package]] name = "filetime" version = "0.2.21" @@ -1258,12 +1249,12 @@ dependencies = [ [[package]] name = "fs-set-times" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7833d0f115a013d51c55950a3b09d30e4b057be9961b709acb9b5b17a1108861" +checksum = "dd738b84894214045e8414eaded76359b4a5773f0a0a56b16575110739cdcf39" dependencies = [ - "io-lifetimes", - "rustix 0.37.19", + "io-lifetimes 2.0.2", + "rustix 0.38.13", "windows-sys 0.48.0", ] @@ -1273,7 +1264,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.3", + "rustix 0.38.13", "windows-sys 0.48.0", ] @@ -1381,7 +1372,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "debugid", "fxhash", "serde", @@ -1414,9 +1405,15 @@ name = "gimli" version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" + +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" dependencies = [ "fallible-iterator", - "indexmap 1.9.2", + "indexmap 2.0.2", "stable_deref_trait", ] @@ -1669,7 +1666,6 @@ checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown 0.12.3", - "serde", ] [[package]] @@ -1680,6 +1676,7 @@ checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" dependencies = [ "equivalent", "hashbrown 0.14.2", + "serde", ] [[package]] @@ -1719,11 +1716,11 @@ dependencies = [ [[package]] name = "io-extras" -version = "0.17.4" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde93d48f0d9277f977a333eca8313695ddd5301dc96f7e02aeddcb0dd99096f" +checksum = "9d3c230ee517ee76b1cc593b52939ff68deda3fae9e41eca426c6b4993df51c4" dependencies = [ - "io-lifetimes", + "io-lifetimes 2.0.2", "windows-sys 0.48.0", ] @@ -1738,6 +1735,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "io-lifetimes" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffb4def18c48926ccac55c1223e02865ce1a821751a95920448662696e7472c" + [[package]] name = "ipnet" version = "2.7.1" @@ -1751,7 +1754,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857" dependencies = [ "hermit-abi 0.3.1", - "io-lifetimes", + "io-lifetimes 1.0.10", "rustix 0.36.9", "windows-sys 0.45.0", ] @@ -1788,9 +1791,9 @@ checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "ittapi" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e648c437172ce7d3ac35ca11a068755072054826fa455a916b43524fa4a62a7" +checksum = "25a5c0b993601cad796222ea076565c5d9f337d35592f8622c753724f06d7271" dependencies = [ "anyhow", "ittapi-sys", @@ -1799,9 +1802,9 @@ dependencies = [ [[package]] name = "ittapi-sys" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b32a4d23f72548178dde54f3c12c6b6a08598e25575c0d0fa5bd861e0dc1a5" +checksum = "cb7b5e473765060536a660eed127f758cf1a810c73e49063264959c60d1727d9" dependencies = [ "cc", ] @@ -1877,9 +1880,9 @@ checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -1991,6 +1994,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "miette" version = "5.10.0" @@ -2117,10 +2129,19 @@ name = "object" version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +dependencies = [ + "memchr", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "crc32fast", - "hashbrown 0.13.2", - "indexmap 1.9.2", + "hashbrown 0.14.2", + "indexmap 2.0.2", "memchr", ] @@ -2299,6 +2320,29 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "prost" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.38", +] + [[package]] name = "proto_cli" version = "0.22.0" @@ -2405,17 +2449,6 @@ dependencies = [ "cc", ] -[[package]] -name = "pulldown-cmark" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8" -dependencies = [ - "bitflags 1.3.2", - "memchr", - "unicase", -] - [[package]] name = "quote" version = "1.0.33" @@ -2566,7 +2599,7 @@ version = "0.11.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ - "base64 0.21.0", + "base64 0.21.5", "bytes", "encoding_rs", "futures-core", @@ -2630,9 +2663,9 @@ dependencies = [ [[package]] name = "rmp-serde" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b13be192e0220b8afb7222aa5813cb62cc269ebb5cac346ca6487681d2913e" +checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" dependencies = [ "byteorder", "rmp", @@ -2659,7 +2692,7 @@ checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc" dependencies = [ "bitflags 1.3.2", "errno 0.2.8", - "io-lifetimes", + "io-lifetimes 1.0.10", "libc", "linux-raw-sys 0.1.4", "windows-sys 0.45.0", @@ -2673,24 +2706,24 @@ checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" dependencies = [ "bitflags 1.3.2", "errno 0.3.1", - "io-lifetimes", - "itoa", + "io-lifetimes 1.0.10", "libc", "linux-raw-sys 0.3.7", - "once_cell", "windows-sys 0.48.0", ] [[package]] name = "rustix" -version = "0.38.3" +version = "0.38.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4" +checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno 0.3.1", + "itoa", "libc", - "linux-raw-sys 0.4.3", + "linux-raw-sys 0.4.11", + "once_cell", "windows-sys 0.48.0", ] @@ -2736,7 +2769,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64 0.21.0", + "base64 0.21.5", ] [[package]] @@ -3244,16 +3277,16 @@ dependencies = [ [[package]] name = "system-interface" -version = "0.25.7" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928ebd55ab758962e230f51ca63735c5b283f26292297c81404289cda5d78631" +checksum = "27ce32341b2c0b70c144bbf35627fdc1ef18c76ced5e5e7b3ee8b5ba6b2ab6a0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "cap-fs-ext", "cap-std", "fd-lock", - "io-lifetimes", - "rustix 0.37.19", + "io-lifetimes 2.0.2", + "rustix 0.38.13", "windows-sys 0.48.0", "winx", ] @@ -3508,18 +3541,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.14", -] - [[package]] name = "toml" version = "0.8.6" @@ -3529,7 +3550,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.7", + "toml_edit", ] [[package]] @@ -3541,19 +3562,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_edit" -version = "0.19.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" -dependencies = [ - "indexmap 2.0.2", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - [[package]] name = "toml_edit" version = "0.20.7" @@ -3664,15 +3672,6 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - [[package]] name = "unicode-bidi" version = "0.3.11" @@ -3870,9 +3869,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi-cap-std-sync" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0fb9a3b1143c8f549b64d707aef869d134fb681f17fb316f0d796537b670ef" +checksum = "3fd94e147b273348ec68ae412b8bc17a4d372b9e070535b98e3e2c5a3ffd8e83" dependencies = [ "anyhow", "async-trait", @@ -3882,10 +3881,9 @@ dependencies = [ "cap-time-ext", "fs-set-times", "io-extras", - "io-lifetimes", - "is-terminal", + "io-lifetimes 2.0.2", "once_cell", - "rustix 0.37.19", + "rustix 0.38.13", "system-interface", "tracing", "wasi-common", @@ -3894,17 +3892,17 @@ dependencies = [ [[package]] name = "wasi-common" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41512a0523d86be06d7cf606e1bafd0238948b237ce832179f85dfdbce217e1a" +checksum = "8d5166f7432ee36d06aa9f9bd7990a00330401fdbc75be7887ea952a299b9a19" dependencies = [ "anyhow", - "bitflags 1.3.2", + "bitflags 2.4.1", "cap-rand", "cap-std", "io-extras", "log", - "rustix 0.37.19", + "rustix 0.38.13", "thiserror", "tracing", "wasmtime", @@ -3980,18 +3978,18 @@ checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" [[package]] name = "wasm-encoder" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c41dbd92eaebf3612a39be316540b8377c871cb9bde6b064af962984912881" +checksum = "9ca90ba1b5b0a70d3d49473c5579951f3bddc78d47b59256d2f9d4922b150aca" dependencies = [ "leb128", ] [[package]] name = "wasm-encoder" -version = "0.31.1" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" +checksum = "822b645bf4f2446b949776ffca47e2af60b167209ffb70814ef8779d299cd421" dependencies = [ "leb128", ] @@ -4011,19 +4009,19 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.107.0" +version = "0.115.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e3ac9b780c7dda0cac7a52a5d6d2d6707cc6e3451c9db209b6c758f40d7acb" +checksum = "e06c0641a4add879ba71ccb3a1e4278fd546f76f1eafb21d8f7b07733b547cd5" dependencies = [ - "indexmap 1.9.2", + "indexmap 2.0.2", "semver", ] [[package]] name = "wasmparser" -version = "0.111.0" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad71036aada3f6b09251546e97e4f4f176dd6b41cf6fa55e7e0f65e86aec319a" +checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50" dependencies = [ "indexmap 2.0.2", "semver", @@ -4031,19 +4029,19 @@ dependencies = [ [[package]] name = "wasmprinter" -version = "0.2.63" +version = "0.2.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb8cc41d341939dce08ee902b50e36cd35add940f6044c94b144e8f73fe07a6" +checksum = "9aff4df0cdf1906ec040e97d78c3fc8fd26d3f8d70adaac81f07f80957b63b54" dependencies = [ "anyhow", - "wasmparser 0.111.0", + "wasmparser 0.116.1", ] [[package]] name = "wasmtime" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b1f817f2ca5070983c71f1205fbab5848c9073df7f4e1af9fdceb4cc4a1b8e5" +checksum = "ca54f6090ce46973f33a79f265924b204f248f91aec09229bce53d19d567c1a6" dependencies = [ "anyhow", "async-trait", @@ -4052,18 +4050,20 @@ dependencies = [ "cfg-if", "encoding_rs", "fxprof-processed-profile", - "indexmap 1.9.2", + "indexmap 2.0.2", "libc", "log", - "object", + "object 0.32.1", "once_cell", "paste", "psm", "rayon", "serde", + "serde_derive", "serde_json", "target-lexicon", - "wasmparser 0.107.0", + "wasm-encoder 0.35.0", + "wasmparser 0.115.0", "wasmtime-cache", "wasmtime-component-macro", "wasmtime-component-util", @@ -4079,27 +4079,27 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f82fbfda4610e9225238c62574ecded8e9d6ad3a12f387ac45819ecad5c3f9b" +checksum = "54984bc0b5689da87a43d7c181d23092b4d5cfcbb7ae3eb6b917dd55865d95e6" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f5b87f1ed383d6c219c04467ab6ae87990d6c2815d5a990138990a7fcbab95" +checksum = "1a4df7655bb73b592189033ab046aa47c1da486d70bc9c1ebf45e55ac030bdf4" dependencies = [ "anyhow", - "base64 0.21.0", + "base64 0.21.5", "bincode", "directories-next", - "file-per-thread-logger", "log", - "rustix 0.37.19", + "rustix 0.38.13", "serde", + "serde_derive", "sha2", "toml 0.5.11", "windows-sys 0.48.0", @@ -4108,14 +4108,14 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e27b96c540c78e12b60025fcbc0ba8a55bff1b32885a5e8eae2df765a6bc97ac" +checksum = "64de99fb7c4c383832b85efcaae95f7094a5c505d80146227ce97ab436cbac68" dependencies = [ "anyhow", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", "wasmtime-component-util", "wasmtime-wit-bindgen", "wit-parser", @@ -4123,66 +4123,69 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0928fe66c22bf8887e2fb524b7647308b8ce836a333af8504e4f1d80b8ea849f" +checksum = "9f9141a8df069e106eee0c3a8173c0809cf1a4b5630628cfb1f25ab114720093" [[package]] name = "wasmtime-cranelift" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659f6e58662d1131f250339acd03aa49377f9351474282699985b79ca4d4a7c" +checksum = "1cf3cee8be02f5006d21b773ffd6802f96a0b7d661ff2ad8a01fb93df458b1aa" dependencies = [ "anyhow", + "cfg-if", "cranelift-codegen", "cranelift-control", "cranelift-entity", "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli", + "gimli 0.28.0", "log", - "object", + "object 0.32.1", "target-lexicon", "thiserror", - "wasmparser 0.107.0", + "wasmparser 0.115.0", "wasmtime-cranelift-shared", "wasmtime-environ", + "wasmtime-versioned-export-macros", ] [[package]] name = "wasmtime-cranelift-shared" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74171de083bf2ecb716c507900f825e2b858346c714fbf48f4763ea760f998a8" +checksum = "420fd2a69bc162957f4c94f21c7fa08ecf60d916f4e87b56332507c555da381d" dependencies = [ "anyhow", "cranelift-codegen", "cranelift-control", "cranelift-native", - "gimli", - "object", + "gimli 0.28.0", + "object 0.32.1", "target-lexicon", "wasmtime-environ", ] [[package]] name = "wasmtime-environ" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b124cbac1a3e04a744c76b3f77919343ef16dc4c818a2406dd7b689b16a54639" +checksum = "fb6a445ce2b2810127caee6c1b79b8da4ae57712b05556a674592c18b7500a14" dependencies = [ "anyhow", "cranelift-entity", - "gimli", - "indexmap 1.9.2", + "gimli 0.28.0", + "indexmap 2.0.2", "log", - "object", + "object 0.32.1", "serde", + "serde_derive", "target-lexicon", "thiserror", - "wasm-encoder 0.29.0", - "wasmparser 0.107.0", + "wasm-encoder 0.35.0", + "wasmparser 0.115.0", "wasmprinter", "wasmtime-component-util", "wasmtime-types", @@ -4190,35 +4193,37 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92ffb8869395c63100ffefbd71cf9489e7e9218e63a3798dcfe93fa8945f9cf" +checksum = "345a8b061c9eab459e10b9112df9fc357d5a9e8b5b1004bc5fc674fba9be6d2a" dependencies = [ "cc", "cfg-if", - "rustix 0.37.19", + "rustix 0.38.13", "wasmtime-asm-macros", + "wasmtime-versioned-export-macros", "windows-sys 0.48.0", ] [[package]] name = "wasmtime-jit" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ff15f426c2378f32ffb6d9b4370e3504231492e93f6968e8b5102c3256bbc4" +checksum = "1f0f6586c61125fbfc13c3108c3dd565d21f314dd5bac823b9a5b7ab576d21f1" dependencies = [ - "addr2line", + "addr2line 0.21.0", "anyhow", "bincode", "cfg-if", "cpp_demangle", - "gimli", + "gimli 0.28.0", "ittapi", "log", - "object", + "object 0.32.1", "rustc-demangle", - "rustix 0.37.19", + "rustix 0.38.13", "serde", + "serde_derive", "target-lexicon", "wasmtime-environ", "wasmtime-jit-debug", @@ -4229,20 +4234,21 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c549e219102426aa1f90bd18e56a3195ed1e696c318abb3f501c1f4924b530ac" +checksum = "109a9e46afe33580b952b14a4207354355f19bcdf0b47485b397b68409eaf553" dependencies = [ - "object", + "object 0.32.1", "once_cell", - "rustix 0.37.19", + "rustix 0.38.13", + "wasmtime-versioned-export-macros", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cf02fedda287a409cff80ad40a7c6c0f0771e99b0cd5e2b79d9cb7ecdc1b2f4" +checksum = "f67e6be36375c39cff57ed3b137ab691afbf2d9ba8ee1c01f77888413f218749" dependencies = [ "cfg-if", "libc", @@ -4251,63 +4257,86 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc38c6229a5d3b8a2528eb33eb11d3e7ebf570259c7cd2f01e8668fe783ea443" +checksum = "1d07986b2327b5e7f535ed638fbde25990fc8f85400194fda0d26db71c7b685e" dependencies = [ "anyhow", "cc", "cfg-if", "encoding_rs", - "indexmap 1.9.2", + "indexmap 2.0.2", "libc", "log", "mach", "memfd", - "memoffset", + "memoffset 0.9.0", "paste", "rand", - "rustix 0.37.19", + "rustix 0.38.13", "sptr", + "wasm-encoder 0.35.0", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-fiber", "wasmtime-jit-debug", + "wasmtime-versioned-export-macros", + "wasmtime-wmemcheck", "windows-sys 0.48.0", ] [[package]] name = "wasmtime-types" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "768f6c5e7afc3a02eff2753196741db8e5ac5faf26a1e2204d7341b30a637c6f" +checksum = "e810a0d2e869abd1cb42bd232990f6bd211672b3d202d2ae7e70ffb97ed70ea3" dependencies = [ "cranelift-entity", "serde", + "serde_derive", "thiserror", - "wasmparser 0.107.0", + "wasmparser 0.115.0", +] + +[[package]] +name = "wasmtime-versioned-export-macros" +version = "14.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b5575a75e711ca6c36bb9ad647c93541cdc8e34218031acba5da3f35919dd3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", ] [[package]] name = "wasmtime-wasi" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff7bb52cc5f9f3878cb012c5e42296e2fbb96e5407301b1e8e7007deec8dca9c" +checksum = "1e6730a2853226292cee755a36549dd1a443b324cf99319cb390af1afed6cb8a" dependencies = [ "anyhow", "async-trait", - "bitflags 1.3.2", + "bitflags 2.4.1", + "bytes", "cap-fs-ext", + "cap-net-ext", "cap-rand", "cap-std", "cap-time-ext", "fs-set-times", + "futures", "io-extras", + "io-lifetimes 2.0.2", "libc", - "rustix 0.37.19", + "log", + "once_cell", + "rustix 0.38.13", "system-interface", "thiserror", + "tokio", "tracing", + "url", "wasi-cap-std-sync", "wasi-common", "wasmtime", @@ -4317,16 +4346,16 @@ dependencies = [ [[package]] name = "wasmtime-winch" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2249faeb887b8b7e7b1797c460ac76160654aea3b8d5842093a771d77fc3819" +checksum = "c1c1b6abbba5a01739bef9f00a87b419414a7dd99b795823d93fb12fc2bf994a" dependencies = [ "anyhow", "cranelift-codegen", - "gimli", - "object", + "gimli 0.28.0", + "object 0.32.1", "target-lexicon", - "wasmparser 0.107.0", + "wasmparser 0.115.0", "wasmtime-cranelift-shared", "wasmtime-environ", "winch-codegen", @@ -4334,15 +4363,22 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a4a005a6a2d5faa7cd953d389da8ae979cb571fe40edec7769649d8c98d874" +checksum = "9d214ca7513d76af2872ad5bba4b0dcc0225821931745fdcb4fc30dd34bc3bf7" dependencies = [ "anyhow", "heck", + "indexmap 2.0.2", "wit-parser", ] +[[package]] +name = "wasmtime-wmemcheck" +version = "14.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dafab2db172a53e23940e0fa3078c202f567ee5f13f4b42f66b694fab43c658" + [[package]] name = "wast" version = "35.0.2" @@ -4354,23 +4390,23 @@ dependencies = [ [[package]] name = "wast" -version = "63.0.0" +version = "67.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2560471f60a48b77fccefaf40796fda61c97ce1e790b59dfcec9dc3995c9f63a" +checksum = "a974d82fac092b5227c1663e16514e7a85f32014e22e6fdcb08b71aec9d3fb1e" dependencies = [ "leb128", "memchr", "unicode-width", - "wasm-encoder 0.31.1", + "wasm-encoder 0.36.2", ] [[package]] name = "wat" -version = "1.0.70" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdc306c2c4c2f2bf2ba69e083731d0d2a77437fc6a350a19db139636e7e416c" +checksum = "adb220934f92f8551144c0003d1bc57a060674c99139f45ed623fbbf6d9262e7" dependencies = [ - "wast 63.0.0", + "wast 67.0.1", ] [[package]] @@ -4421,13 +4457,13 @@ dependencies = [ [[package]] name = "wiggle" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89f0d9c91096db5e250cb803500bddfdd65ae3268a9e09283b75d3b513ede7a" +checksum = "7f6ce56a4019ce3d8592c298029a75abe6887d1c95a078a4c53ec77a0628262d" dependencies = [ "anyhow", "async-trait", - "bitflags 1.3.2", + "bitflags 2.4.1", "thiserror", "tracing", "wasmtime", @@ -4436,28 +4472,28 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b5552356799612587de885e02b7e7e7d39e41657af1ddb985d18fbe5ac1642" +checksum = "e585a4b1e84195031c77d8484af99cd93f129f45d519e83cb8cc75e9a420cfd3" dependencies = [ "anyhow", "heck", "proc-macro2", "quote", "shellexpand", - "syn 1.0.109", + "syn 2.0.38", "witx", ] [[package]] name = "wiggle-macro" -version = "11.0.1" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca58f5cfecefaec28b09bfb6197a52dbd24df4656154bd377a166f1031d9b17" +checksum = "c6f321dbce722989d65c3082dba479fa392c7b7a1a4c3adc2a39545dd5aa452f" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", "wiggle-generate", ] @@ -4494,17 +4530,17 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" -version = "0.9.1" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21de111a36e8f367416862fdf6f10caa411cc07a6e21b614eedbf9388c2a3dc9" +checksum = "f112bebb367a544d20c254083798087f22ceeb426168a970b955e8436f749dca" dependencies = [ "anyhow", "cranelift-codegen", - "gimli", + "gimli 0.28.0", "regalloc2", "smallvec", "target-lexicon", - "wasmparser 0.107.0", + "wasmparser 0.115.0", "wasmtime-environ", ] @@ -4695,29 +4731,29 @@ dependencies = [ [[package]] name = "winx" -version = "0.35.1" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c52a121f0fbf9320d5f2a9a5d82f6cb7557eda5e8b47fc3e7f359ec866ae960" +checksum = "357bb8e2932df531f83b052264b050b81ba0df90ee5a59b2d1d3949f344f81e5" dependencies = [ - "bitflags 1.3.2", - "io-lifetimes", + "bitflags 2.4.1", "windows-sys 0.48.0", ] [[package]] name = "wit-parser" -version = "0.8.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6daec9f093dbaea0e94043eeb92ece327bbbe70c86b1f41aca9bbfefd7f050f0" +checksum = "43771ee863a16ec4ecf9da0fc65c3bbd4a1235c8e3da5f094b562894843dfa76" dependencies = [ "anyhow", "id-arena", - "indexmap 1.9.2", + "indexmap 2.0.2", "log", - "pulldown-cmark", "semver", + "serde", + "serde_derive", + "serde_json", "unicode-xid", - "url", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index d137a16bf..9c0cc5046 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,8 +8,8 @@ cached = "0.46.1" clap = "4.4.7" clap_complete = "4.4.4" convert_case = "0.6.0" -extism = { version = "0.5.4" } -extism-pdk = "0.3.4" +extism = { version = "1.0.0-alpha.0", path = "../extism/runtime" } +extism-pdk = { version = "1.0.0-beta.0", path = "../extism-pdk" } human-sort = "0.2.2" miette = "5.10.0" once_cell = "1.18.0" diff --git a/EXTISM.md b/EXTISM.md new file mode 100644 index 000000000..8d0f053e2 --- /dev/null +++ b/EXTISM.md @@ -0,0 +1,5 @@ +# Issues + +- `Plugin#function_exists` should not be `&mut self` +- Equivalent to old `Plugin#set_config` ? +- re-export `log::Level` diff --git a/crates/core/src/host_funcs.rs b/crates/core/src/host_funcs.rs index 64ab392f1..0bb159c75 100644 --- a/crates/core/src/host_funcs.rs +++ b/crates/core/src/host_funcs.rs @@ -1,5 +1,5 @@ use crate::proto::ProtoEnvironment; -use extism::{CurrentPlugin, Error, Function, InternalExt, UserData, Val, ValType}; +use extism::{CurrentPlugin, Error, Function, UserData, Val, ValType}; use proto_pdk_api::{ExecCommandInput, ExecCommandOutput, HostLogInput, HostLogTarget}; use starbase_utils::fs; use std::env; @@ -21,7 +21,7 @@ pub fn create_host_functions(data: HostData) -> Vec { "exec_command", [ValType::I64], [ValType::I64], - Some(UserData::new(data.clone())), + UserData::new(data.clone()), exec_command, ), // Function::new( @@ -35,15 +35,21 @@ pub fn create_host_functions(data: HostData) -> Vec { "get_env_var", [ValType::I64], [ValType::I64], - None, + UserData::new(data.clone()), get_env_var, ), - Function::new("host_log", [ValType::I64], [], None, host_log), + Function::new( + "host_log", + [ValType::I64], + [], + UserData::new(data.clone()), + host_log, + ), Function::new( "set_env_var", [ValType::I64, ValType::I64], [], - None, + UserData::new(data.clone()), set_env_var, ), // Function::new( @@ -62,10 +68,9 @@ pub fn host_log( plugin: &mut CurrentPlugin, inputs: &[Val], _outputs: &mut [Val], - _user_data: UserData, + _user_data: UserData, ) -> Result<(), Error> { - let input: HostLogInput = - serde_json::from_str(plugin.memory_read_str(inputs[0].unwrap_i64() as u64)?)?; + let input: HostLogInput = serde_json::from_str(plugin.memory_get_val(&inputs[0])?)?; match input { HostLogInput::Message(message) => { @@ -108,10 +113,9 @@ fn exec_command( plugin: &mut CurrentPlugin, inputs: &[Val], outputs: &mut [Val], - _user_data: UserData, + user_data: UserData, ) -> Result<(), Error> { - let input: ExecCommandInput = - serde_json::from_str(plugin.memory_read_str(inputs[0].unwrap_i64() as u64)?)?; + let input: ExecCommandInput = serde_json::from_str(plugin.memory_get_val(&inputs[0])?)?; trace!( target: "proto_wasm::exec_command", @@ -126,13 +130,13 @@ fn exec_command( fs::update_perms(&input.command, None)?; } - // let data = user_data.any().unwrap(); - // let data = data.downcast_ref::().unwrap(); + let data = user_data.get()?; + let data = data.lock().unwrap(); let mut command = Command::new(&input.command); command.args(&input.args); command.envs(&input.env_vars); - // command.current_dir(&data.proto.cwd); + command.current_dir(&data.proto.cwd); let output = if input.stream { let result = command.spawn()?.wait()?; @@ -175,9 +179,7 @@ fn exec_command( "Executed command from plugin" ); - let ptr = plugin.memory_alloc_bytes(serde_json::to_string(&output)?)?; - - outputs[0] = Val::I64(ptr as i64); + plugin.memory_set_val(&mut outputs[0], serde_json::to_string(&output)?)?; Ok(()) } @@ -186,21 +188,19 @@ fn get_env_var( plugin: &mut CurrentPlugin, inputs: &[Val], outputs: &mut [Val], - _user_data: UserData, + _user_data: UserData, ) -> Result<(), Error> { - let name = plugin.memory_read_str(inputs[0].unwrap_i64() as u64)?; - let value = env::var(name).unwrap_or_default(); + let name: String = plugin.memory_get_val(&inputs[0])?; + let value = env::var(&name).unwrap_or_default(); trace!( target: "proto_wasm::get_env_var", - name, + name = &name, value = &value, "Read environment variable from host" ); - let ptr = plugin.memory_alloc_bytes(value)?; - - outputs[0] = Val::I64(ptr as i64); + plugin.memory_set_val(&mut outputs[0], value)?; Ok(()) } @@ -209,15 +209,10 @@ fn set_env_var( plugin: &mut CurrentPlugin, inputs: &[Val], _outputs: &mut [Val], - _user_data: UserData, + _user_data: UserData, ) -> Result<(), Error> { - let name = plugin - .memory_read_str(inputs[0].unwrap_i64() as u64)? - .to_owned(); - - let value = plugin - .memory_read_str(inputs[1].unwrap_i64() as u64)? - .to_owned(); + let name: String = plugin.memory_get_val(&inputs[0])?; + let value: String = plugin.memory_get_val(&inputs[1])?; trace!( target: "proto_wasm::set_env_var", diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index fe78aaed1..062fd1e66 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -14,7 +14,7 @@ mod version_resolver; pub use error::*; pub use events::*; -pub use extism::{manifest::Wasm, Manifest as PluginManifest}; +pub use extism::{Manifest as PluginManifest, Wasm}; pub use helpers::*; pub use proto::*; pub use semver::{Version, VersionReq}; diff --git a/crates/core/src/tool.rs b/crates/core/src/tool.rs index cbbacf52c..212ace6a1 100644 --- a/crates/core/src/tool.rs +++ b/crates/core/src/tool.rs @@ -9,7 +9,7 @@ use crate::proto::ProtoEnvironment; use crate::shimmer::{get_shim_file_name, ShimContext, SHIM_VERSION}; use crate::tool_manifest::ToolManifest; use crate::version_resolver::VersionResolver; -use extism::{manifest::Wasm, Manifest as PluginManifest}; +use extism::{Manifest as PluginManifest, Wasm}; use miette::IntoDiagnostic; use proto_pdk_api::*; use serde::Serialize; @@ -41,7 +41,7 @@ pub struct Tool { pub manifest: ToolManifest, pub metadata: ToolMetadataOutput, pub locator: Option, - pub plugin: PluginContainer<'static>, + pub plugin: PluginContainer, pub proto: Arc, pub version: Option, @@ -98,7 +98,7 @@ impl Tool { trace!(file = ?log_file, "Created WASM log file"); - extism::set_log_file(log_file, std::str::FromStr::from_str(&level).ok()); + extism::set_log_file(log_file, std::str::FromStr::from_str(&level).unwrap()).unwrap(); } let mut tool = Tool { diff --git a/crates/core/src/tool_loader.rs b/crates/core/src/tool_loader.rs index deb50f719..9575091fb 100644 --- a/crates/core/src/tool_loader.rs +++ b/crates/core/src/tool_loader.rs @@ -3,7 +3,7 @@ use crate::proto::ProtoEnvironment; use crate::tool::Tool; use crate::tools_config::{ToolsConfig, SCHEMA_PLUGIN_KEY}; use crate::user_config::UserConfig; -use extism::{manifest::Wasm, Manifest}; +use extism::{Manifest, Wasm}; use miette::IntoDiagnostic; use proto_pdk_api::{HostArch, HostEnvironment, HostOS, UserConfigSettings}; use starbase_utils::{json, toml}; diff --git a/crates/pdk-test-utils/src/lib.rs b/crates/pdk-test-utils/src/lib.rs index 408976132..35fb4e8a6 100644 --- a/crates/pdk-test-utils/src/lib.rs +++ b/crates/pdk-test-utils/src/lib.rs @@ -69,7 +69,11 @@ pub fn find_wasm_file(sandbox: &Path) -> PathBuf { if !LOGGING { LOGGING = true; - extism::set_log_file(wasm_target_dir.join(format!("{wasm_file_name}.log")), None); + extism::set_log_file( + wasm_target_dir.join(format!("{wasm_file_name}.log")), + std::str::FromStr::from_str("trace").unwrap(), + ) + .unwrap(); } }; diff --git a/crates/pdk/src/helpers.rs b/crates/pdk/src/helpers.rs index aa8f1bc29..98890ec3a 100644 --- a/crates/pdk/src/helpers.rs +++ b/crates/pdk/src/helpers.rs @@ -35,7 +35,7 @@ pub fn fetch_url_text(url: U) -> anyhow::Result where U: AsRef, { - String::from_bytes(fetch(HttpRequest::new(url.as_ref()), None)?.body()) + String::from_bytes(&fetch(HttpRequest::new(url.as_ref()), None)?.body()) } /// Fetch the provided URL, deserialize the response as JSON, @@ -237,13 +237,13 @@ pub fn get_target_triple(env: &HostEnvironment, name: &str) -> Result String { - config::get("proto_tool_id").expect("Missing tool ID!") +pub fn get_tool_id() -> anyhow::Result { + Ok(config::get("proto_tool_id")?.expect("Missing tool ID!")) } /// Return information about proto and the host environment. pub fn get_proto_environment() -> anyhow::Result { - let config = config::get("proto_environment").expect("Missing proto environment!"); + let config = config::get("proto_environment")?.expect("Missing proto environment!"); let config: HostEnvironment = json::from_str(&config)?; Ok(config) @@ -251,7 +251,7 @@ pub fn get_proto_environment() -> anyhow::Result { /// Return the loaded proto user configuration (`~/.proto/config.toml`). Does not include plugins! pub fn get_proto_user_config() -> anyhow::Result { - let config = config::get("proto_user_config").expect("Missing proto user configuration!"); + let config = config::get("proto_user_config")?.expect("Missing proto user configuration!"); let config: UserConfigSettings = json::from_str(&config)?; Ok(config) diff --git a/crates/warpgate/src/plugin.rs b/crates/warpgate/src/plugin.rs index 30e1aaf07..4677e2dfb 100644 --- a/crates/warpgate/src/plugin.rs +++ b/crates/warpgate/src/plugin.rs @@ -17,25 +17,25 @@ use warpgate_api::VirtualPath; /// A container around Extism's [`Plugin`] and [`Manifest`] types that provides convenience /// methods for calling and caching functions from the WASM plugin. It also provides /// additional methods for easily working with WASI and virtual paths. -pub struct PluginContainer<'plugin> { +pub struct PluginContainer { pub id: Id, pub manifest: Manifest, func_cache: OnceMap>, - plugin: Arc>>, + plugin: Arc>, } -unsafe impl<'plugin> Send for PluginContainer<'plugin> {} -unsafe impl<'plugin> Sync for PluginContainer<'plugin> {} +unsafe impl Send for PluginContainer {} +unsafe impl Sync for PluginContainer {} -impl<'plugin> PluginContainer<'plugin> { +impl PluginContainer { /// Create a new container with the provided manifest and host functions. - pub fn new<'new>( + pub fn new( id: Id, manifest: Manifest, functions: impl IntoIterator, - ) -> miette::Result> { - let plugin = Plugin::create_with_manifest(&manifest, functions, true) + ) -> miette::Result { + let plugin = Plugin::new(&manifest, functions, true) .map_err(|error| WarpgateError::PluginCreateFailed { error })?; Ok(PluginContainer { @@ -47,10 +47,7 @@ impl<'plugin> PluginContainer<'plugin> { } /// Create a new container with the provided manifest. - pub fn new_without_functions<'new>( - id: Id, - manifest: Manifest, - ) -> miette::Result> { + pub fn new_without_functions(id: Id, manifest: Manifest) -> miette::Result { Self::new(id, manifest, []) } @@ -63,11 +60,12 @@ impl<'plugin> PluginContainer<'plugin> { .map(|(k, v)| (k.to_owned(), Some(v.to_owned()))) .collect::>(); - self.plugin - .write() - .expect("Failed to acquire write access!") - .set_config(&config) - .unwrap(); + // TODO fix + // self.plugin + // .write() + // .expect("Failed to acquire write access!") + // .set_config(&config) + // .unwrap(); Ok(()) } @@ -136,14 +134,14 @@ impl<'plugin> PluginContainer<'plugin> { /// Return true if the plugin has a function with the given id. pub fn has_func(&self, func: &str) -> bool { self.plugin - .read() + .write() // TODO switch back to read .unwrap_or_else(|_| { panic!( "Unable to acquire read access to `{}` WASM plugin.", self.id ) }) - .has_function(func) + .function_exists(func) } /// Convert the provided virtual guest path to an absolute host path.