From 686ea9233dc2ef7dc8203eaf5e7da1f3e58aeca0 Mon Sep 17 00:00:00 2001 From: Kate Goldenring Date: Thu, 7 Mar 2024 22:05:59 -0800 Subject: [PATCH] Point to Runwasi and Spin crates for precompilation support Signed-off-by: Kate Goldenring --- Cargo.lock | 519 +++++++++++++++-------------- containerd-shim-spin/Cargo.toml | 24 +- containerd-shim-spin/src/engine.rs | 24 +- 3 files changed, 303 insertions(+), 264 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a6aa63de..6b04658a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1324,14 +1324,14 @@ dependencies = [ "serde_json", "spin-app", "spin-common", - "spin-componentize", + "spin-componentize 0.1.0", "spin-core", "spin-loader", "spin-manifest", "spin-oci", - "spin-redis-engine", "spin-trigger", "spin-trigger-http", + "spin-trigger-redis", "tokio", "trigger-sqs", "url", @@ -1342,7 +1342,7 @@ dependencies = [ [[package]] name = "containerd-shim-wasm" version = "0.5.0" -source = "git+https://github.com/jsturtevant/runwasi?branch=runwasi-precompile-take-2#215f5033c446b8eed9ae2d983d9051aa8d5bd9e4" +source = "git+https://github.com/containerd/runwasi?rev=064baf38c7b7de64c253a50115b3f7e921f28817#064baf38c7b7de64c253a50115b3f7e921f28817" dependencies = [ "anyhow", "caps", @@ -1409,18 +1409,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e7c0d51205b863591dd1e7aaa0fb69c2ea7bed48ffa63d6c4a848b07a35a732" +checksum = "9515fcc42b6cb5137f76b84c1a6f819782d0cf12473d145d3bc5cd67eedc8bc2" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ffb467cbc25543e4c20d2ad669bf8275598047b03c89652ad5fe2a0f47fc0e1" +checksum = "1ad827c6071bfe6d22de1bc331296a29f9ddc506ff926d8415b435ec6a6efce0" dependencies = [ "bumpalo", "cranelift-bforest", @@ -1439,33 +1439,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7e74aed5c2b91e38d090653506afbd2cd3be1ff70593e2aa6bb82b3c6b77ff" +checksum = "10e6b36237a9ca2ce2fb4cc7741d418a080afa1327402138412ef85d5367bef1" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff2dd24cce0775566da85770cb48aa58fef901cf2bff30275b42e7dbe62cbd5" +checksum = "c36bf4bfb86898a94ccfa773a1f86e8a5346b1983ff72059bdd2db4600325251" [[package]] name = "cranelift-control" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8bcf4d5c73bbca309edf3af2839b5218e5c74cfbf22b0ac492af8a1d11120d9" +checksum = "7cbf36560e7a6bd1409ca91e7b43b2cc7ed8429f343d7605eadf9046e8fac0d0" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "286754159b1a685475d6a0b4710832f950d6f4846a817002e2c23ff001321a65" +checksum = "a71e11061a75b1184c09bea97c026a88f08b59ade96a7bb1f259d4ea0df2e942" dependencies = [ "serde", "serde_derive", @@ -1473,9 +1473,9 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67150a1fef9857caba710f8c0c8223d640f02c0e5d1ebbfc75ed62912599cb6b" +checksum = "af5d4da63143ee3485c7bcedde0a818727d737d1083484a0ceedb8950c89e495" dependencies = [ "cranelift-codegen", "log", @@ -1485,15 +1485,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7ceea70d3e0d7f69df7657f99de902e32016731c5a8d2788c1df0215f00952" +checksum = "457a9832b089e26f5eea70dcf49bed8ec6edafed630ce7c83161f24d46ab8085" [[package]] name = "cranelift-native" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707e5d9384ce4fa3c40af1abf4c3ec49857745cced5187593385f4a2c0b95445" +checksum = "9b490d579df1ce365e1ea359e24ed86d82289fa785153327c2f6a69a59a731e4" dependencies = [ "cranelift-codegen", "libc", @@ -1502,9 +1502,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.104.1" +version = "0.105.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d957e3ff2a14c2f974a66c22bfcedcd2bd0272af8dce4236869c3942f5a471" +checksum = "8cd747ed7f9a461dda9c388415392f6bb95d1a6ef3b7694d17e0817eb74b7798" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1512,7 +1512,7 @@ dependencies = [ "itertools 0.10.5", "log", "smallvec", - "wasmparser 0.118.1", + "wasmparser 0.121.2", "wasmtime-types", ] @@ -1903,13 +1903,12 @@ dependencies = [ [[package]] name = "dkregistry" version = "0.5.1-alpha.0" -source = "git+https://github.com/camallo/dkregistry-rs?rev=37acecb4b8139dd1b1cc83795442f94f90e1ffc5#37acecb4b8139dd1b1cc83795442f94f90e1ffc5" +source = "git+https://github.com/fermyon/dkregistry-rs?rev=161cf2b66996ed97c7abaf046e38244484814de3#161cf2b66996ed97c7abaf046e38244484814de3" dependencies = [ "async-stream", "base64 0.13.1", "bytes", "futures", - "http 0.2.11", "libflate", "log", "mime", @@ -3269,9 +3268,9 @@ dependencies = [ [[package]] name = "libflate" -version = "1.4.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff4ae71b685bbad2f2f391fe74f6b7659a34871c08b210fdc039e43bee07d18" +checksum = "05605ab2bce11bcfc0e9c635ff29ef8b2ea83f29be257ee7d730cac3ee373093" dependencies = [ "adler32", "crc32fast", @@ -4113,8 +4112,8 @@ dependencies = [ [[package]] name = "outbound-http" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "http 0.2.11", @@ -4131,8 +4130,8 @@ dependencies = [ [[package]] name = "outbound-mysql" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "flate2", @@ -4150,8 +4149,8 @@ dependencies = [ [[package]] name = "outbound-pg" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "native-tls", @@ -4168,8 +4167,8 @@ dependencies = [ [[package]] name = "outbound-redis" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "redis 0.21.7", @@ -5704,8 +5703,8 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spin-app" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -5720,8 +5719,8 @@ dependencies = [ [[package]] name = "spin-common" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "dirs 4.0.0", @@ -5739,14 +5738,26 @@ dependencies = [ "anyhow", "wasm-encoder 0.35.0", "wasmparser 0.115.0", - "wit-component", + "wit-component 0.16.1", "wit-parser 0.12.2", ] +[[package]] +name = "spin-componentize" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" +dependencies = [ + "anyhow", + "wasm-encoder 0.200.0", + "wasmparser 0.200.0", + "wit-component 0.200.0", + "wit-parser 0.200.0", +] + [[package]] name = "spin-core" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -5767,8 +5778,8 @@ dependencies = [ [[package]] name = "spin-http" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "http 1.0.0", @@ -5785,8 +5796,8 @@ dependencies = [ [[package]] name = "spin-key-value" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "lru 0.9.0", @@ -5801,7 +5812,7 @@ dependencies = [ [[package]] name = "spin-key-value-azure" version = "0.1.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "azure_data_cosmos", @@ -5816,7 +5827,7 @@ dependencies = [ [[package]] name = "spin-key-value-redis" version = "0.1.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "redis 0.21.7", @@ -5830,7 +5841,7 @@ dependencies = [ [[package]] name = "spin-key-value-sqlite" version = "0.1.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "once_cell", @@ -5843,8 +5854,8 @@ dependencies = [ [[package]] name = "spin-llm" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "bytesize", @@ -5856,8 +5867,8 @@ dependencies = [ [[package]] name = "spin-llm-remote-http" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "http 0.2.11", @@ -5873,8 +5884,8 @@ dependencies = [ [[package]] name = "spin-loader" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -5911,8 +5922,8 @@ dependencies = [ [[package]] name = "spin-locked-app" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -5925,8 +5936,8 @@ dependencies = [ [[package]] name = "spin-manifest" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -5940,8 +5951,8 @@ dependencies = [ [[package]] name = "spin-oci" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-compression", @@ -5968,8 +5979,8 @@ dependencies = [ [[package]] name = "spin-outbound-networking" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "ipnet", @@ -5979,27 +5990,10 @@ dependencies = [ "urlencoding", ] -[[package]] -name = "spin-redis-engine" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" -dependencies = [ - "anyhow", - "async-trait", - "futures", - "redis 0.21.7", - "serde", - "spin-app", - "spin-core", - "spin-trigger", - "spin-world", - "tracing", -] - [[package]] name = "spin-serde" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "base64 0.21.5", "serde", @@ -6007,8 +6001,8 @@ dependencies = [ [[package]] name = "spin-sqlite" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -6021,8 +6015,8 @@ dependencies = [ [[package]] name = "spin-sqlite-inproc" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -6036,8 +6030,8 @@ dependencies = [ [[package]] name = "spin-sqlite-libsql" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -6051,8 +6045,8 @@ dependencies = [ [[package]] name = "spin-trigger" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -6071,7 +6065,7 @@ dependencies = [ "serde_json", "spin-app", "spin-common", - "spin-componentize", + "spin-componentize 2.3.1", "spin-core", "spin-key-value", "spin-key-value-azure", @@ -6099,8 +6093,8 @@ dependencies = [ [[package]] name = "spin-trigger-http" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -6135,10 +6129,27 @@ dependencies = [ "wasmtime-wasi-http", ] +[[package]] +name = "spin-trigger-redis" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" +dependencies = [ + "anyhow", + "async-trait", + "futures", + "redis 0.21.7", + "serde", + "spin-app", + "spin-core", + "spin-trigger", + "spin-world", + "tracing", +] + [[package]] name = "spin-variables" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "anyhow", "async-trait", @@ -6155,8 +6166,8 @@ dependencies = [ [[package]] name = "spin-world" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "wasmtime", ] @@ -6331,8 +6342,8 @@ dependencies = [ [[package]] name = "table" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +version = "2.3.1" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" [[package]] name = "tar" @@ -6376,7 +6387,7 @@ dependencies = [ [[package]] name = "terminal" version = "0.1.0" -source = "git+https://github.com/fermyon/spin?branch=load-aot-compiled-components#a89f04f603d9d8ebc0bcba38425c313945ceca2f" +source = "git+https://github.com/fermyon/spin?tag=v2.3.1#22c2ac507add20f82f35e79fb798e8294a49f69a" dependencies = [ "atty", "once_cell", @@ -6885,7 +6896,7 @@ dependencies = [ [[package]] name = "trigger-sqs" version = "0.6.0" -source = "git+https://github.com/kate-goldenring/spin-trigger-sqs?branch=uses-aot-compilation-loader#b03027821d3a0e9ec9e03f523e90a63baec62b7f" +source = "git+https://github.com/kate-goldenring/spin-trigger-sqs?branch=update-spin-deps#e744454484b684e5119911a1b3246b6672156d7a" dependencies = [ "anyhow", "async-trait", @@ -7195,13 +7206,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasi-cap-std-sync" -version = "17.0.1" +name = "wasi-common" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025e842ba390587e523785ff58bd54fbbf1781b8d3072bc9aba4dc0b809f69da" +checksum = "880c1461417b2bf90262591bf8a5f04358fb86dac8a585a49b87024971296763" dependencies = [ "anyhow", - "async-trait", + "bitflags 2.4.2", "cap-fs-ext", "cap-rand", "cap-std", @@ -7209,51 +7220,18 @@ dependencies = [ "fs-set-times", "io-extras", "io-lifetimes 2.0.3", + "log", "once_cell", "rustix 0.38.30", "system-interface", - "tracing", - "wasi-common", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasi-common" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4d4023cc65b3615590d38db0afb79234de09b3bb89cb0d8f83bdee9f5c28a8" -dependencies = [ - "anyhow", - "bitflags 2.4.2", - "cap-rand", - "cap-std", - "io-extras", - "log", - "rustix 0.38.30", "thiserror", + "tokio", "tracing", "wasmtime", "wiggle", "windows-sys 0.52.0", ] -[[package]] -name = "wasi-tokio" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c97de58a5b89e9ab479a2f9e17e9eb41d0e0156e3c979b2e7f00e9499d2e97b7" -dependencies = [ - "anyhow", - "cap-std", - "io-extras", - "io-lifetimes 2.0.3", - "rustix 0.38.30", - "tokio", - "wasi-cap-std-sync", - "wasi-common", - "wiggle", -] - [[package]] name = "wasm-bindgen" version = "0.2.88" @@ -7340,18 +7318,36 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.38.1" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad2b51884de9c7f4fe2fd1043fccb8dcad4b1e29558146ee57a144d15779f3f" +checksum = "d162eb64168969ae90e8668ca0593b0e47667e315aa08e717a9c9574d700d826" dependencies = [ "leb128", ] [[package]] name = "wasm-encoder" -version = "0.40.0" +version = "0.41.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d162eb64168969ae90e8668ca0593b0e47667e315aa08e717a9c9574d700d826" +checksum = "972f97a5d8318f908dded23594188a90bcd09365986b1163e66d70170e5287ae" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.200.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e3fb0c8fbddd78aa6095b850dfeedbc7506cf5f81e633f69cf8f2333ab84b9" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.201.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9c7d2731df60006819b013f64ccc2019691deccf6e11a1804bc850cd6748f1a" dependencies = [ "leb128", ] @@ -7372,6 +7368,22 @@ dependencies = [ "wasmparser 0.120.0", ] +[[package]] +name = "wasm-metadata" +version = "0.200.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b8cc0c21f46d55b0aaa419cacce1eadcf28eaebd0e1488d6a6313ee71a586" +dependencies = [ + "anyhow", + "indexmap 2.1.0", + "serde", + "serde_derive", + "serde_json", + "spdx", + "wasm-encoder 0.200.0", + "wasmparser 0.200.0", +] + [[package]] name = "wasm-streams" version = "0.3.0" @@ -7407,19 +7419,20 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.118.1" +version = "0.120.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ee9723b928e735d53000dec9eae7b07a60e490c85ab54abb66659fc61bfcd9" +checksum = "e9148127f39cbffe43efee8d5442b16ecdba21567785268daa1ec9e134389705" dependencies = [ + "bitflags 2.4.2", "indexmap 2.1.0", "semver", ] [[package]] name = "wasmparser" -version = "0.120.0" +version = "0.121.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9148127f39cbffe43efee8d5442b16ecdba21567785268daa1ec9e134389705" +checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ "bitflags 2.4.2", "indexmap 2.1.0", @@ -7439,20 +7452,21 @@ dependencies = [ [[package]] name = "wasmprinter" -version = "0.2.77" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8389a95eb0b3165fea0537a6988960cc23a33d9be650e63fc3d63065fe20dcb" +checksum = "60e73986a6b7fdfedb7c5bf9e7eb71135486507c8fbc4c0c42cffcb6532988b7" dependencies = [ "anyhow", - "wasmparser 0.120.0", + "wasmparser 0.121.2", ] [[package]] name = "wasmtime" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb6aa966be38f613954c3debe7ba6c7a02ffd0537432be438da0b038955cdf" +checksum = "4c843b8bc4dd4f3a76173ba93405c71111d570af0d90ea5f6299c705d0c2add2" dependencies = [ + "addr2line", "anyhow", "async-trait", "bincode", @@ -7460,26 +7474,30 @@ dependencies = [ "cfg-if 1.0.0", "encoding_rs", "fxprof-processed-profile", + "gimli", "indexmap 2.1.0", + "ittapi", "libc", "log", "object", "once_cell", "paste", "rayon", + "rustix 0.38.30", "serde", "serde_derive", "serde_json", "target-lexicon", - "wasm-encoder 0.38.1", - "wasmparser 0.118.1", + "wasm-encoder 0.41.2", + "wasmparser 0.121.2", "wasmtime-cache", "wasmtime-component-macro", "wasmtime-component-util", "wasmtime-cranelift", "wasmtime-environ", "wasmtime-fiber", - "wasmtime-jit", + "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", "wasmtime-runtime", "wasmtime-winch", "wat", @@ -7488,18 +7506,18 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1495ef4d46aec14f967b672e946e391dd8a14a443cda3d5e0779ff67fb6e28d" +checksum = "86b9d329c718b3a18412a6a017c912b539baa8fe1210d21b651f6b4dbafed743" dependencies = [ "cfg-if 1.0.0", ] [[package]] name = "wasmtime-cache" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2de1b065bdbaca3df9e7e9f70eb129e326a99d971b16d666acd798d98d47635" +checksum = "6fb4fc2bbf9c790a57875eba65588fa97acf57a7d784dc86d057e648d9a1ed91" dependencies = [ "anyhow", "base64 0.21.5", @@ -7517,9 +7535,9 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f19bcff82f81ba0273c0b68f3909977b0dd54489bc86c630d8aad43dca92f3f" +checksum = "d8d55ddfd02898885c39638eae9631cd430c83a368f5996ed0f7bfb181d02157" dependencies = [ "anyhow", "proc-macro2", @@ -7532,15 +7550,15 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8af072b7ad5ac5583e1f9e4737ebf88923de564fb5d4ace0ca9b4b720bdf95a1" +checksum = "1d6d69c430cddc70ec42159506962c66983ce0192ebde4eb125b7aabc49cff88" [[package]] name = "wasmtime-cranelift" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df08a8bd9a68732577bee05ac685e4c247238b5e79ad9c062e2dfb4d04dca132" +checksum = "31ca62f519225492bd555d0ec85a2dacb0c10315db3418c8b9aeb3824bf54a24" dependencies = [ "anyhow", "cfg-if 1.0.0", @@ -7555,7 +7573,7 @@ dependencies = [ "object", "target-lexicon", "thiserror", - "wasmparser 0.118.1", + "wasmparser 0.121.2", "wasmtime-cranelift-shared", "wasmtime-environ", "wasmtime-versioned-export-macros", @@ -7563,9 +7581,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift-shared" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "404201c9e669083f189f01337b3ed0aa0eb081157fb4e170bbfe193df9497771" +checksum = "fd5f2071f42e61490bf7cb95b9acdbe6a29dd577a398019304a960585f28b844" dependencies = [ "anyhow", "cranelift-codegen", @@ -7579,22 +7597,25 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e696b4911c9a69c3c2892ec05eb41bb15436d1a46d8830a755c40f5df47546a" +checksum = "82bf1a47f384610da19f58b0fd392ca6a3b720974315c08afb0392c0f3951fed" dependencies = [ "anyhow", + "bincode", + "cpp_demangle", "cranelift-entity", "gimli", "indexmap 2.1.0", "log", "object", + "rustc-demangle", "serde", "serde_derive", "target-lexicon", "thiserror", - "wasm-encoder 0.38.1", - "wasmparser 0.118.1", + "wasm-encoder 0.41.2", + "wasmparser 0.121.2", "wasmprinter", "wasmtime-component-util", "wasmtime-types", @@ -7602,9 +7623,9 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a39681c1f6f54d1bf7efe5dc829f8d7fc0e2ca12c346fd7a3efbf726e9681d2" +checksum = "0e31aecada2831e067ebfe93faa3001cc153d506f8af40bbea58aa1d20fe4820" dependencies = [ "anyhow", "cc", @@ -7615,38 +7636,11 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "wasmtime-jit" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c56519882d936c680bd191d58ac04cff071a470eca2dcc664adcd60f986a731" -dependencies = [ - "addr2line", - "anyhow", - "bincode", - "cfg-if 1.0.0", - "cpp_demangle", - "gimli", - "ittapi", - "log", - "object", - "rustc-demangle", - "rustix 0.38.30", - "serde", - "serde_derive", - "target-lexicon", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-jit-icache-coherence", - "wasmtime-runtime", - "windows-sys 0.52.0", -] - [[package]] name = "wasmtime-jit-debug" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "babc65e64ab0dd4e1ce65624db64e24ed0fbdebb16148729173fa0da9f70e53c" +checksum = "833dae95bc7a4f9177bf93f9497419763535b74e37eb8c37be53937d3281e287" dependencies = [ "object", "once_cell", @@ -7656,9 +7650,9 @@ dependencies = [ [[package]] name = "wasmtime-jit-icache-coherence" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ec5b11c12d9acb09612e7ce04c4c8aea3e8dc79b2591ffdead986a5ce8ec49" +checksum = "33f4121cb29dda08139b2824a734dd095d83ce843f2d613a84eb580b9cfc17ac" dependencies = [ "cfg-if 1.0.0", "libc", @@ -7667,9 +7661,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e1c31bbdf67cb86f149bcead5193749f23f77c93c5244ec9ac8d192f90966c" +checksum = "4e517f2b996bb3b0e34a82a2bce194f850d9bcfc25c08328ef5fb71b071066b8" dependencies = [ "anyhow", "cc", @@ -7685,7 +7679,7 @@ dependencies = [ "psm", "rustix 0.38.30", "sptr", - "wasm-encoder 0.38.1", + "wasm-encoder 0.41.2", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-fiber", @@ -7697,22 +7691,22 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e799cff634d30fd042db96b417d515e54f903b95f8c1e0ec60e8f604479485" +checksum = "54a327d7a0ef57bd52a507d28b4561a74126c7a8535a2fc6f2025716bc6a52e8" dependencies = [ "cranelift-entity", "serde", "serde_derive", "thiserror", - "wasmparser 0.118.1", + "wasmparser 0.121.2", ] [[package]] name = "wasmtime-versioned-export-macros" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10fe166d4e4c95d5d80c5b47e1e12256af2099ac525ddb9a19b1aeb8896e5e1" +checksum = "8ef32eea9fc7035a55159a679d1e89b43ece5ae45d24eed4808e6a92c99a0da4" dependencies = [ "proc-macro2", "quote", @@ -7721,9 +7715,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494f99111a165dcddc69aaa5fa23604f49dcfab479a869edd84581abd6ac569b" +checksum = "d04d2fb2257245aa05ff799ded40520ae4d8cd31b0d14972afac89061f12fe12" dependencies = [ "anyhow", "async-trait", @@ -7738,7 +7732,6 @@ dependencies = [ "futures", "io-extras", "io-lifetimes 2.0.3", - "libc", "log", "once_cell", "rustix 0.38.30", @@ -7747,9 +7740,7 @@ dependencies = [ "tokio", "tracing", "url", - "wasi-cap-std-sync", "wasi-common", - "wasi-tokio", "wasmtime", "wiggle", "windows-sys 0.52.0", @@ -7757,9 +7748,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi-http" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6ee5c9cd235c99afdb9acf8dac79ae0ea431e36cb1d9434d6940a7390bdce7" +checksum = "eb0bffc64b193bb99810de77ca2a77f4afa828629e83106cbe47bf76000d93a3" dependencies = [ "anyhow", "async-trait", @@ -7780,16 +7771,16 @@ dependencies = [ [[package]] name = "wasmtime-winch" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3f5d76d399cb4423e6f178bc154a0e1c314711e28dabaa6e757e56628a083ec" +checksum = "db3378c0e808a744b5d4df2a9a9d2746a53b151811926731f04fc401707f7d54" dependencies = [ "anyhow", "cranelift-codegen", "gimli", "object", "target-lexicon", - "wasmparser 0.118.1", + "wasmparser 0.121.2", "wasmtime-cranelift-shared", "wasmtime-environ", "winch-codegen", @@ -7797,9 +7788,9 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb3bc92c031cf4961135bffe055a69c1bd67c253dca20631478189bb05ec27b" +checksum = "ca677c36869e45602617b25a9968ec0d895ad9a0aee3756d9dee1ddd89456f91" dependencies = [ "anyhow", "heck 0.4.1", @@ -7809,9 +7800,9 @@ dependencies = [ [[package]] name = "wasmtime-wmemcheck" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da08ab734954e16f57be38423b90c25a0b13420e51cbd0a2e37b86a468a988c" +checksum = "7f4cbfb052d66f03603a9b77f18171ea245c7805714caad370a549a6344bf86b" [[package]] name = "wast" @@ -7824,23 +7815,24 @@ dependencies = [ [[package]] name = "wast" -version = "70.0.1" +version = "201.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d415036fe747a32b30c76c8bd6c73f69b7705fb7ebca5f16e852eef0c95802" +checksum = "1ef6e1ef34d7da3e2b374fd2b1a9c0227aff6cad596e1b24df9b58d0f6222faa" dependencies = [ + "bumpalo", "leb128", "memchr", "unicode-width", - "wasm-encoder 0.40.0", + "wasm-encoder 0.201.0", ] [[package]] name = "wat" -version = "1.0.84" +version = "1.201.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8241f34599d413d2243a21015ab43aef68bfb32a0e447c54eef8d423525ca15e" +checksum = "453d5b37a45b98dee4f4cb68015fc73634d7883bbef1c65e6e9c78d454cf3f32" dependencies = [ - "wast 70.0.1", + "wast 201.0.0", ] [[package]] @@ -7902,9 +7894,9 @@ dependencies = [ [[package]] name = "wiggle" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd5b200b5dd3d5d7cc4093166f4f916d2d2839296cf1b1757b9726635f6425c3" +checksum = "b69812e493f8a43d8551abfaaf9539e1aff0cf56a58cdd276845fc4af035d0cd" dependencies = [ "anyhow", "async-trait", @@ -7917,9 +7909,9 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4dc34a2bc1091599de005e9b854cd1a9ea35b16ca51cac2797274c1a2666e06" +checksum = "0446357a5a7af0172848b6eca7b2aa1ab7d90065cd2ab02b633a322e1a52f636" dependencies = [ "anyhow", "heck 0.4.1", @@ -7932,9 +7924,9 @@ dependencies = [ [[package]] name = "wiggle-macro" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ba3b37f402a7513b9ed7973a6e907074987b3afdcede98d3d79939b3e76f1b" +checksum = "9498ef53a12cf25dc6de9baef6ccd8b58d159202c412a19f4d72b218393086c5" dependencies = [ "proc-macro2", "quote", @@ -7975,9 +7967,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" -version = "0.15.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d921185084e134e897e0e202e129a422306d0f1391954ecf4928d36defa897d" +checksum = "8197ed4a2ebf612f0624ddda10de71f8cd2d3a4ecf8ffac0586a264599708d63" dependencies = [ "anyhow", "cranelift-codegen", @@ -7985,7 +7977,7 @@ dependencies = [ "regalloc2", "smallvec", "target-lexicon", - "wasmparser 0.118.1", + "wasmparser 0.121.2", "wasmtime-environ", ] @@ -8173,11 +8165,30 @@ dependencies = [ "serde_derive", "serde_json", "wasm-encoder 0.36.2", - "wasm-metadata", + "wasm-metadata 0.10.16", "wasmparser 0.116.1", "wit-parser 0.12.2", ] +[[package]] +name = "wit-component" +version = "0.200.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39979723340baea490b87b11b2abae05f149d86f2b55c18d41d78a2a2b284c16" +dependencies = [ + "anyhow", + "bitflags 2.4.2", + "indexmap 2.1.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.200.0", + "wasm-metadata 0.200.0", + "wasmparser 0.200.0", + "wit-parser 0.200.0", +] + [[package]] name = "wit-parser" version = "0.12.2" @@ -8212,6 +8223,24 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "wit-parser" +version = "0.200.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f717576b37f01c15696bda7f6f13868367b9c5913485f9f0ec8e59fd28c8e13" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.1.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.200.0", +] + [[package]] name = "witx" version = "0.9.1" diff --git a/containerd-shim-spin/Cargo.toml b/containerd-shim-spin/Cargo.toml index d1d3ed2b..f320d719 100644 --- a/containerd-shim-spin/Cargo.toml +++ b/containerd-shim-spin/Cargo.toml @@ -11,21 +11,21 @@ Containerd shim for running Spin workloads. """ [dependencies] -containerd-shim-wasm = { git = "https://github.com/jsturtevant/runwasi", branch = "runwasi-precompile-take-2" } +containerd-shim-wasm = { git = "https://github.com/containerd/runwasi", rev = "064baf38c7b7de64c253a50115b3f7e921f28817" } containerd-shim = "0.6.0" log = "0.4" -spin-app = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } -spin-core = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } +spin-app = { git = "https://github.com/fermyon/spin", tag = "v2.3.1" } +spin-core = { git = "https://github.com/fermyon/spin", tag = "v2.3.1" } spin-componentize = { git = "https://github.com/fermyon/spin-componentize", rev = "191789170abde10cd55590466c0660dd6c7d472a" } -spin-trigger = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } -spin-trigger-http = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } -spin-redis-engine = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } -trigger-sqs = { git = "https://github.com/kate-goldenring/spin-trigger-sqs", branch = "uses-aot-compilation-loader" } -spin-manifest = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } -spin-loader = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } -spin-oci = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } -spin-common = { git = "https://github.com/fermyon/spin", branch = "load-aot-compiled-components" } -wasmtime = "17.0.0" +spin-trigger = { git = "https://github.com/fermyon/spin", tag = "v2.3.1", features = ["unsafe-aot-compilation"] } +spin-trigger-http = { git = "https://github.com/fermyon/spin", tag = "v2.3.1" } +spin-trigger-redis = { git = "https://github.com/fermyon/spin", tag = "v2.3.1" } +trigger-sqs = { git = "https://github.com/kate-goldenring/spin-trigger-sqs", branch = "update-spin-deps" } +spin-manifest = { git = "https://github.com/fermyon/spin", tag = "v2.3.1" } +spin-loader = { git = "https://github.com/fermyon/spin", tag = "v2.3.1" } +spin-oci = { git = "https://github.com/fermyon/spin", tag = "v2.3.1" } +spin-common = { git = "https://github.com/fermyon/spin", tag = "v2.3.1" } +wasmtime = "18.0.1" tokio = { version = "1", features = ["rt"] } openssl = { version = "*", features = ["vendored"] } serde = "1.0" diff --git a/containerd-shim-spin/src/engine.rs b/containerd-shim-spin/src/engine.rs index 5abd0091..d1fe8577 100644 --- a/containerd-shim-spin/src/engine.rs +++ b/containerd-shim-spin/src/engine.rs @@ -7,10 +7,10 @@ use spin_app::locked::LockedApp; use spin_loader::cache::Cache; use spin_loader::FilesMountStrategy; use spin_manifest::schema::v2::AppManifest; -use spin_redis_engine::RedisTrigger; use spin_trigger::TriggerHooks; use spin_trigger::{loader, RuntimeConfig, TriggerExecutor, TriggerExecutorBuilder}; use spin_trigger_http::HttpTrigger; +use spin_trigger_redis::RedisTrigger; use std::collections::hash_map::DefaultHasher; use std::collections::HashSet; use std::env; @@ -271,7 +271,13 @@ impl SpinEngine { let locked_url = self.write_locked_app(&app, &working_dir).await?; // Build trigger config - let loader = loader::TriggerLoader::new(working_dir.clone(), true, true); + let mut loader = loader::TriggerLoader::new(working_dir.clone(), true); + // Configure the loader to support loading AOT compiled components.. + // Since all components were compiled by the shim (during `precompile`), + // this operation can be considered safe. + unsafe { + loader.enable_loading_aot_compiled_components(); + } let mut runtime_config = RuntimeConfig::new(PathBuf::from("/").into()); // Load in runtime config if one exists at expected location if Path::new(RUNTIME_CONFIG_PATH).exists() { @@ -288,7 +294,7 @@ impl SpinEngine { Ok(executor) } - // Returns Some(WasmLayer) if the layer is a wasm layer, otherwise None + // Returns Some(WasmLayer) if the layer contains wasm, otherwise None fn is_wasm_content(layer: &WasmLayer) -> Option { if let MediaType::Other(name) = layer.config.media_type() { if name == "application/vnd.wasm.content.layer.v1+wasm" { @@ -324,7 +330,7 @@ impl Engine for SpinEngine { ] } - fn precompile(&self, layers: &[WasmLayer]) -> Result>> { + fn precompile(&self, layers: &[WasmLayer]) -> Result>>> { // Runwasi expects layers to be returned in the same order, so wrap each layer in an option, setting non Wasm layers to None let mut wasm_content_layers: Vec> = layers.iter().map(SpinEngine::is_wasm_content).collect(); @@ -347,7 +353,11 @@ impl Engine for SpinEngine { wasm_layer.layer = precompiled; } } - Ok(wasm_content_layers) + let precompiled_layers: Vec>> = wasm_content_layers + .into_iter() + .map(|l| l.map(|l| l.layer)) + .collect(); + Ok(precompiled_layers) } fn can_precompile(&self) -> Option { @@ -484,8 +494,8 @@ mod tests { let spin_engine = SpinEngine::default(); let precompiled = spin_engine.precompile(&wasm_layers).unwrap(); assert_eq!(precompiled.len(), 3); - assert_ne!(precompiled[0].as_ref().unwrap().layer, module); - assert_eq!(precompiled[1].as_ref().unwrap().layer, component); + assert_ne!(precompiled[0].as_deref().unwrap(), module); + assert_eq!(precompiled[1].as_deref().unwrap(), component); assert!(precompiled[2].is_none()); } }