diff --git a/Cargo.lock b/Cargo.lock index 0894730..a32d6f3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -487,6 +487,296 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "aws-config" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7688e1dfbb9f7804fab0a830820d7e827b8d973906763cf1a855ce4719292f5" +dependencies = [ + "aws-http", + "aws-sdk-sso", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-json", + "aws-smithy-types", + "aws-types", + "bytes", + "hex", + "http 0.2.12", + "hyper 0.14.30", + "ring 0.16.20", + "time", + "tokio", + "tower", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-endpoint" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "253d7cd480bfa59a5323390e9e91885a8f06a275e0517d81eeb1070b6aa7d271" +dependencies = [ + "aws-smithy-http", + "aws-smithy-types", + "aws-types", + "http 0.2.12", + "regex", + "tracing", +] + +[[package]] +name = "aws-http" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd1b83859383e46ea8fda633378f9f3f02e6e3a446fd89f0240b5c3662716c9" +dependencies = [ + "aws-smithy-http", + "aws-smithy-types", + "aws-types", + "bytes", + "http 0.2.12", + "http-body 0.4.6", + "lazy_static 1.5.0", + "percent-encoding", + "pin-project-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-sqs" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b489461c4309514f1019a924687fbdafeb88eeeac0800e8aca6fef6a66877e73" +dependencies = [ + "aws-endpoint", + "aws-http", + "aws-sig-auth", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-query", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "bytes", + "http 0.2.12", + "tokio-stream", + "tower", +] + +[[package]] +name = "aws-sdk-sso" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf03342c2b3f52b180f484e60586500765474f2bfc7dcd4ffe893a7a1929db1d" +dependencies = [ + "aws-endpoint", + "aws-http", + "aws-sig-auth", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-json", + "aws-smithy-types", + "aws-types", + "bytes", + "http 0.2.12", + "tokio-stream", + "tower", +] + +[[package]] +name = "aws-sdk-sts" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa1de4e07ea87a30a317c7b563b3a40fd18a843ad794216dda81672b6e174bce" +dependencies = [ + "aws-endpoint", + "aws-http", + "aws-sig-auth", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-query", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "bytes", + "http 0.2.12", + "tower", + "tracing", +] + +[[package]] +name = "aws-sig-auth" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6126c4ff918e35fb9ae1bf2de71157fad36f0cc6a2b1d0f7197ee711713700fc" +dependencies = [ + "aws-sigv4", + "aws-smithy-http", + "aws-types", + "http 0.2.12", + "tracing", +] + +[[package]] +name = "aws-sigv4" +version = "0.52.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1ee2d9e6e268a77bdf3a0dc2cc8767401627e60abaa32883aaa3d8b47428e9" +dependencies = [ + "aws-smithy-http", + "form_urlencoded", + "hex", + "hmac", + "http 0.2.12", + "once_cell", + "percent-encoding", + "regex", + "sha2", + "time", + "tracing", +] + +[[package]] +name = "aws-smithy-async" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e6a895d68852dd1564328e63ef1583e5eb307dd2a5ebf35d862a5c402957d5e" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", + "tokio-stream", +] + +[[package]] +name = "aws-smithy-client" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f505bf793eb3e6d7c166ef1275c27b4b2cd5361173fe950ac8e2cfc08c29a7ef" +dependencies = [ + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-types", + "bytes", + "fastrand 1.9.0", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "hyper-rustls 0.23.2", + "lazy_static 1.5.0", + "pin-project-lite", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-http" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e4b4304b7ea4af1af3e08535100eb7b6459d5a6264b92078bf85176d04ab85" +dependencies = [ + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tokio", + "tokio-util 0.7.12", + "tracing", +] + +[[package]] +name = "aws-smithy-http-tower" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86072ecc4dc4faf3e2071144285cfd539263fe7102b701d54fb991eafb04af8" +dependencies = [ + "aws-smithy-http", + "aws-smithy-types", + "bytes", + "http 0.2.12", + "http-body 0.4.6", + "pin-project-lite", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-json" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3ddd9275b167bc59e9446469eca56177ec0b51225632f90aaa2cd5f41c940e" +dependencies = [ + "aws-smithy-types", +] + +[[package]] +name = "aws-smithy-query" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b19d2e0b3ce20e460bad0d0d974238673100edebba6978c2c1aadd925602f7" +dependencies = [ + "aws-smithy-types", + "urlencoding", +] + +[[package]] +name = "aws-smithy-types" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "987b1e37febb9bd409ca0846e82d35299e572ad8279bc404778caeb5fc05ad56" +dependencies = [ + "base64-simd", + "itoa", + "num-integer", + "ryu", + "time", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ce3791e14eec75ffac851a5a559f1ce6b31843297f42cc8bfba82714a6a5d8" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "aws-types" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c05adca3e2bcf686dd2c47836f216ab52ed7845c177d180c84b08522c1166a3" +dependencies = [ + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-types", + "http 0.2.12", + "rustc_version", + "tracing", + "zeroize", +] + [[package]] name = "axum" version = "0.6.20" @@ -661,6 +951,15 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64-simd" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" +dependencies = [ + "simd-abstraction", +] + [[package]] name = "base64ct" version = "1.6.0" @@ -775,6 +1074,16 @@ dependencies = [ "serde 1.0.210", ] +[[package]] +name = "bytes-utils" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" +dependencies = [ + "bytes", + "either", +] + [[package]] name = "cap-fs-ext" version = "3.2.0" @@ -1116,7 +1425,7 @@ dependencies = [ [[package]] name = "conformance-tests" version = "0.1.0" -source = "git+https://github.com/fermyon/conformance-tests#6ec9e9d95e3b333de85685131337c8864c1af67d" +source = "git+https://github.com/fermyon/conformance-tests?rev=6ec9e9d95e3b333de85685131337c8864c1af67d#6ec9e9d95e3b333de85685131337c8864c1af67d" dependencies = [ "anyhow", "flate2", @@ -1217,6 +1526,7 @@ dependencies = [ "kube", "rand 0.8.5", "redis 0.25.4", + "rumqttc", "tokio", "tower", ] @@ -1252,6 +1562,9 @@ dependencies = [ "spin-trigger-redis", "temp-env", "tokio", + "trigger-command", + "trigger-mqtt", + "trigger-sqs", "url", "wasmtime", "wat", @@ -2160,7 +2473,7 @@ checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" dependencies = [ "futures-core", "futures-sink", - "spin", + "spin 0.9.8", ] [[package]] @@ -2314,6 +2627,12 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + [[package]] name = "futures-util" version = "0.3.30" @@ -2772,6 +3091,22 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http 0.2.12", + "hyper 0.14.30", + "log", + "rustls 0.20.9", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.23.4", + "webpki-roots 0.22.6", +] + [[package]] name = "hyper-rustls" version = "0.24.2" @@ -4455,6 +4790,12 @@ version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +[[package]] +name = "outref" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" + [[package]] name = "overload" version = "0.1.1" @@ -4483,6 +4824,32 @@ dependencies = [ "winapi", ] +[[package]] +name = "paho-mqtt" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8367868d51cef74c28da328ed8f60529ddd3f04dca1867dd825fcc3085a4308" +dependencies = [ + "async-channel 1.9.0", + "crossbeam-channel", + "futures", + "futures-timer", + "libc", + "log", + "paho-mqtt-sys", + "thiserror", +] + +[[package]] +name = "paho-mqtt-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e482419d847af4ec43c07eed70f5f94f87dc712d267aecc91ab940944ab6bf4" +dependencies = [ + "cmake", + "openssl-sys", +] + [[package]] name = "parking" version = "2.2.1" @@ -5588,6 +5955,21 @@ dependencies = [ "subtle", ] +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + [[package]] name = "ring" version = "0.17.8" @@ -5598,8 +5980,8 @@ dependencies = [ "cfg-if 1.0.0", "getrandom 0.2.15", "libc", - "spin", - "untrusted", + "spin 0.9.8", + "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -5754,6 +6136,18 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + [[package]] name = "rustls" version = "0.21.12" @@ -5761,7 +6155,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring", + "ring 0.17.8", "rustls-webpki 0.101.7", "sct", ] @@ -5773,7 +6167,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ "log", - "ring", + "ring 0.17.8", "rustls-pki-types", "rustls-webpki 0.102.8", "subtle", @@ -5788,7 +6182,7 @@ checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" dependencies = [ "log", "once_cell", - "ring", + "ring 0.17.8", "rustls-pki-types", "rustls-webpki 0.102.8", "subtle", @@ -5851,8 +6245,8 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring", - "untrusted", + "ring 0.17.8", + "untrusted 0.9.0", ] [[package]] @@ -5861,9 +6255,9 @@ version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring", + "ring 0.17.8", "rustls-pki-types", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -5957,8 +6351,8 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring", - "untrusted", + "ring 0.17.8", + "untrusted 0.9.0", ] [[package]] @@ -6341,6 +6735,15 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simd-abstraction" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" +dependencies = [ + "outref", +] + [[package]] name = "siphasher" version = "0.3.11" @@ -6430,6 +6833,12 @@ dependencies = [ "smallvec", ] +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + [[package]] name = "spin" version = "0.9.8" @@ -6442,7 +6851,7 @@ dependencies = [ [[package]] name = "spin-app" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -6455,7 +6864,7 @@ dependencies = [ [[package]] name = "spin-common" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "dirs 5.0.1", @@ -6468,7 +6877,7 @@ dependencies = [ [[package]] name = "spin-componentize" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "tracing", @@ -6482,7 +6891,7 @@ dependencies = [ [[package]] name = "spin-compose" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -6499,7 +6908,7 @@ dependencies = [ [[package]] name = "spin-core" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -6510,7 +6919,7 @@ dependencies = [ [[package]] name = "spin-expressions" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -6524,7 +6933,7 @@ dependencies = [ [[package]] name = "spin-factor-key-value" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "lru 0.9.0", @@ -6542,7 +6951,7 @@ dependencies = [ [[package]] name = "spin-factor-llm" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -6560,7 +6969,7 @@ dependencies = [ [[package]] name = "spin-factor-outbound-http" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "http 1.1.0", @@ -6585,7 +6994,7 @@ dependencies = [ [[package]] name = "spin-factor-outbound-mqtt" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "rumqttc", @@ -6601,7 +7010,7 @@ dependencies = [ [[package]] name = "spin-factor-outbound-mysql" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "flate2", @@ -6622,7 +7031,7 @@ dependencies = [ [[package]] name = "spin-factor-outbound-networking" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "futures-util", @@ -6637,6 +7046,7 @@ dependencies = [ "spin-factor-wasi", "spin-factors", "spin-locked-app", + "spin-manifest", "spin-serde", "terminal", "tracing", @@ -6648,7 +7058,7 @@ dependencies = [ [[package]] name = "spin-factor-outbound-pg" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "native-tls", @@ -6666,7 +7076,7 @@ dependencies = [ [[package]] name = "spin-factor-outbound-redis" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "redis 0.21.7", @@ -6681,7 +7091,7 @@ dependencies = [ [[package]] name = "spin-factor-sqlite" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "async-trait", "serde 1.0.210", @@ -6691,12 +7101,13 @@ dependencies = [ "table", "tokio", "toml 0.8.19", + "tracing", ] [[package]] name = "spin-factor-variables" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "azure_core", "azure_identity", @@ -6715,7 +7126,7 @@ dependencies = [ [[package]] name = "spin-factor-wasi" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "async-trait", "bytes", @@ -6730,7 +7141,7 @@ dependencies = [ [[package]] name = "spin-factors" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "serde 1.0.210", @@ -6745,7 +7156,7 @@ dependencies = [ [[package]] name = "spin-factors-derive" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "proc-macro2", "quote", @@ -6755,7 +7166,7 @@ dependencies = [ [[package]] name = "spin-factors-executor" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "spin-app", @@ -6766,7 +7177,7 @@ dependencies = [ [[package]] name = "spin-http" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "http 1.1.0", @@ -6785,7 +7196,7 @@ dependencies = [ [[package]] name = "spin-key-value-azure" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "azure_data_cosmos", @@ -6801,7 +7212,7 @@ dependencies = [ [[package]] name = "spin-key-value-redis" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "redis 0.21.7", @@ -6816,7 +7227,7 @@ dependencies = [ [[package]] name = "spin-key-value-spin" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "once_cell", @@ -6831,7 +7242,7 @@ dependencies = [ [[package]] name = "spin-llm-remote-http" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "http 0.2.12", @@ -6846,7 +7257,7 @@ dependencies = [ [[package]] name = "spin-loader" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -6885,7 +7296,7 @@ dependencies = [ [[package]] name = "spin-locked-app" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -6898,7 +7309,7 @@ dependencies = [ [[package]] name = "spin-manifest" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -6915,7 +7326,7 @@ dependencies = [ [[package]] name = "spin-oci" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-compression", @@ -6945,7 +7356,7 @@ dependencies = [ [[package]] name = "spin-runtime-config" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "spin-common", @@ -6972,7 +7383,7 @@ dependencies = [ [[package]] name = "spin-runtime-factors" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "clap 3.2.25", @@ -7000,7 +7411,7 @@ dependencies = [ [[package]] name = "spin-serde" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "base64 0.22.1", @@ -7012,7 +7423,7 @@ dependencies = [ [[package]] name = "spin-sqlite" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "async-trait", "serde 1.0.210", @@ -7030,7 +7441,7 @@ dependencies = [ [[package]] name = "spin-sqlite-inproc" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -7040,28 +7451,27 @@ dependencies = [ "spin-factor-sqlite", "spin-world", "tokio", - "tracing", ] [[package]] name = "spin-sqlite-libsql" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", "libsql", "rusqlite", + "spin-factor-sqlite", "spin-world", "sqlparser", "tokio", - "tracing", ] [[package]] name = "spin-telemetry" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "http 0.2.12", @@ -7081,7 +7491,7 @@ dependencies = [ [[package]] name = "spin-trigger" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "clap 3.2.25", @@ -7109,7 +7519,7 @@ dependencies = [ [[package]] name = "spin-trigger-http" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -7151,7 +7561,7 @@ dependencies = [ [[package]] name = "spin-trigger-redis" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "anyhow", "async-trait", @@ -7170,7 +7580,7 @@ dependencies = [ [[package]] name = "spin-world" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "async-trait", "wasmtime", @@ -7381,7 +7791,7 @@ dependencies = [ [[package]] name = "table" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" [[package]] name = "tar" @@ -7440,7 +7850,7 @@ dependencies = [ [[package]] name = "terminal" version = "2.8.0-pre0" -source = "git+https://github.com/fermyon/spin?rev=e7e69e5d7d719e532bcbd6a903476c430466f422#e7e69e5d7d719e532bcbd6a903476c430466f422" +source = "git+https://github.com/fermyon/spin?rev=485b04090644ecfda4d0034891a5feca9a90332c#485b04090644ecfda4d0034891a5feca9a90332c" dependencies = [ "atty", "once_cell", @@ -7450,7 +7860,7 @@ dependencies = [ [[package]] name = "test-environment" version = "0.1.0" -source = "git+https://github.com/fermyon/conformance-tests#6ec9e9d95e3b333de85685131337c8864c1af67d" +source = "git+https://github.com/fermyon/conformance-tests?rev=6ec9e9d95e3b333de85685131337c8864c1af67d#6ec9e9d95e3b333de85685131337c8864c1af67d" dependencies = [ "anyhow", "fslock", @@ -7638,6 +8048,17 @@ dependencies = [ "whoami", ] +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki", +] + [[package]] name = "tokio-rustls" version = "0.24.1" @@ -7670,6 +8091,16 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-scoped" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4beb8ba13bc53ac53ce1d52b42f02e5d8060f0f42138862869beb769722b256" +dependencies = [ + "tokio", + "tokio-stream", +] + [[package]] name = "tokio-socks" version = "0.5.2" @@ -7974,6 +8405,72 @@ dependencies = [ "tracing-serde", ] +[[package]] +name = "trigger-command" +version = "0.1.0" +source = "git+https://github.com/fermyon/spin-trigger-command?rev=2502a964b66c36b2b3d81813e58240d01cf5767b#2502a964b66c36b2b3d81813e58240d01cf5767b" +dependencies = [ + "anyhow", + "clap 3.2.25", + "openssl", + "serde 1.0.210", + "spin-core", + "spin-factor-wasi", + "spin-factors", + "spin-runtime-factors", + "spin-telemetry", + "spin-trigger", + "tokio", + "tracing", + "wasmtime-wasi", +] + +[[package]] +name = "trigger-mqtt" +version = "0.2.0" +source = "git+https://github.com/rylev/spin-trigger-mqtt?rev=476c8a91b1dba5666be425ec47203c64c4828c15#476c8a91b1dba5666be425ec47203c64c4828c15" +dependencies = [ + "anyhow", + "clap 3.2.25", + "futures", + "paho-mqtt", + "serde 1.0.210", + "spin-app", + "spin-core", + "spin-expressions", + "spin-factor-variables", + "spin-factors", + "spin-runtime-factors", + "spin-telemetry", + "spin-trigger", + "tokio", + "tracing", + "wasmtime", +] + +[[package]] +name = "trigger-sqs" +version = "0.7.0" +source = "git+https://github.com/fermyon/spin-trigger-sqs?rev=fa95ebdd25fc145616aef758f31a15ae47648f44#fa95ebdd25fc145616aef758f31a15ae47648f44" +dependencies = [ + "anyhow", + "aws-config", + "aws-sdk-sqs", + "clap 3.2.25", + "futures", + "openssl", + "serde 1.0.210", + "spin-core", + "spin-factors", + "spin-runtime-factors", + "spin-telemetry", + "spin-trigger", + "tokio", + "tokio-scoped", + "tracing", + "wasmtime", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -8155,6 +8652,12 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "untrusted" version = "0.9.0" @@ -9141,6 +9644,25 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + [[package]] name = "webpki-roots" version = "0.25.4" @@ -9610,6 +10132,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "xmlparser" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" + [[package]] name = "yaml-rust" version = "0.4.5" diff --git a/conformance-tests/Cargo.toml b/conformance-tests/Cargo.toml index b05d10d..1b8f4e6 100644 --- a/conformance-tests/Cargo.toml +++ b/conformance-tests/Cargo.toml @@ -9,7 +9,7 @@ homepage.workspace = true [dependencies] anyhow = "1.0" -conformance-tests = { git = "https://github.com/fermyon/conformance-tests", ref = "6ec9e9d95e3b333de85685131337c8864c1af67d" } +conformance-tests = { git = "https://github.com/fermyon/conformance-tests", rev = "6ec9e9d95e3b333de85685131337c8864c1af67d" } log = "0.4" nix = "0.28" -test-environment = { git = "https://github.com/fermyon/conformance-tests", ref = "6ec9e9d95e3b333de85685131337c8864c1af67d" } +test-environment = { git = "https://github.com/fermyon/conformance-tests", rev = "6ec9e9d95e3b333de85685131337c8864c1af67d" } diff --git a/containerd-shim-spin/Cargo.toml b/containerd-shim-spin/Cargo.toml index bc3406e..bc761d0 100644 --- a/containerd-shim-spin/Cargo.toml +++ b/containerd-shim-spin/Cargo.toml @@ -14,27 +14,27 @@ Containerd shim for running Spin workloads. containerd-shim-wasm = "0.6.0" containerd-shim = "0.7.1" log = "0.4" -spin-app = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-core = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-componentize = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } +spin-app = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-core = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-componentize = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } # Enable loading components precompiled by the shim -spin-trigger = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422", features = [ +spin-trigger = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c", features = [ "unsafe-aot-compilation", ] } -spin-trigger-http = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-trigger-redis = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -# trigger-mqtt = { git = "https://github.com/spinkube/spin-trigger-mqtt", tag = "v0.2.0" } -# trigger-sqs = { git = "https://github.com/fermyon/spin-trigger-sqs", rev = "v0.7.0" } -# trigger-command = { git = "https://github.com/fermyon/spin-trigger-command", tag = "v0.1.0" } -spin-manifest = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-loader = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-oci = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-common = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-expressions = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-factors-executor = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-telemetry = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-runtime-factors = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } -spin-factors = { git = "https://github.com/fermyon/spin", rev = "e7e69e5d7d719e532bcbd6a903476c430466f422" } +spin-trigger-http = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-trigger-redis = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +trigger-mqtt = { git = "https://github.com/rylev/spin-trigger-mqtt", rev = "476c8a91b1dba5666be425ec47203c64c4828c15" } +trigger-sqs = { git = "https://github.com/fermyon/spin-trigger-sqs", rev = "fa95ebdd25fc145616aef758f31a15ae47648f44" } +trigger-command = { git = "https://github.com/fermyon/spin-trigger-command", rev = "2502a964b66c36b2b3d81813e58240d01cf5767b" } +spin-manifest = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-loader = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-oci = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-common = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-expressions = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-factors-executor = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-telemetry = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-runtime-factors = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } +spin-factors = { git = "https://github.com/fermyon/spin", rev = "485b04090644ecfda4d0034891a5feca9a90332c" } wasmtime = "22.0" tokio = { version = "1.38", features = ["rt"] } openssl = { version = "*", features = ["vendored"] } diff --git a/containerd-shim-spin/src/engine.rs b/containerd-shim-spin/src/engine.rs index 7e4ee38..306d70e 100644 --- a/containerd-shim-spin/src/engine.rs +++ b/containerd-shim-spin/src/engine.rs @@ -13,15 +13,21 @@ use containerd_shim_wasm::{ use futures::future; use log::info; use spin_app::locked::LockedApp; +use spin_trigger::cli::NoCliArgs; +use spin_trigger_http::HttpTrigger; +use spin_trigger_redis::RedisTrigger; use tokio::runtime::Runtime; -// use trigger_command::CommandTrigger; -// use trigger_mqtt::MqttTrigger; -// use trigger_sqs::SqsTrigger; +use trigger_command::CommandTrigger; +use trigger_mqtt::MqttTrigger; +use trigger_sqs::SqsTrigger; use crate::{ constants, source::Source, - trigger::{self, get_supported_triggers, HTTP_TRIGGER_TYPE, REDIS_TRIGGER_TYPE}, + trigger::{ + self, get_supported_triggers, COMMAND_TRIGGER_TYPE, HTTP_TRIGGER_TYPE, MQTT_TRIGGER_TYPE, + REDIS_TRIGGER_TYPE, SQS_TRIGGER_TYPE, + }, utils::{ configure_application_variables_from_environment_variables, initialize_cache, is_wasm_content, parse_addr, @@ -174,34 +180,33 @@ impl SpinEngine { let address_str = env::var(constants::SPIN_HTTP_LISTEN_ADDR_ENV) .unwrap_or_else(|_| constants::SPIN_ADDR_DEFAULT.to_string()); let listen_address = parse_addr(&address_str)?; - let trigger = spin_trigger_http::HttpTrigger::new(&app, listen_address, None)?; - trigger::run(trigger, app, &loader).await? + let cli_args = spin_trigger_http::CliArgs { + address: listen_address, + tls_cert: None, + tls_key: None, + }; + trigger::run::(cli_args, app, &loader).await? } REDIS_TRIGGER_TYPE => { info!(" >>> running spin redis trigger"); - let trigger = spin_trigger_redis::RedisTrigger; - trigger::run(trigger, app, &loader).await? + trigger::run::(NoCliArgs, app, &loader).await? + } + SQS_TRIGGER_TYPE => { + info!(" >>> running spin sqs trigger"); + trigger::run::(NoCliArgs, app, &loader).await? + } + COMMAND_TRIGGER_TYPE => { + info!(" >>> running spin command trigger"); + let cli_args = trigger_command::CliArgs { + guest_args: ctx.args().to_vec(), + }; + trigger::run::(cli_args, app, &loader).await? + } + MQTT_TRIGGER_TYPE => { + info!(" >>> running spin mqtt trigger"); + let cli_args = trigger_mqtt::CliArgs { test: false }; + trigger::run::(cli_args, app, &loader).await? } - // SqsTrigger::TRIGGER_TYPE => { - // let sqs_trigger = - // build_trigger::(app.clone(), app_source.clone()).await?; - // info!(" >>> running spin sqs trigger"); - // sqs_trigger.run(spin_trigger::cli::NoArgs) - // } - // CommandTrigger::TRIGGER_TYPE => { - // let command_trigger = - // build_trigger::(app.clone(), app_source.clone()).await?; - // info!(" >>> running spin command trigger"); - // command_trigger.run(trigger_command::CliArgs { - // guest_args: ctx.args().to_vec(), - // }) - // } - // MqttTrigger::TRIGGER_TYPE => { - // let mqtt_trigger = - // build_trigger::(app.clone(), app_source.clone()).await?; - // info!(" >>> running spin mqtt trigger"); - // mqtt_trigger.run(trigger_mqtt::CliArgs { test: false }) - // } _ => { // This should never happen as we check for supported triggers in get_supported_triggers todo!("bring back other triggers") diff --git a/containerd-shim-spin/src/trigger.rs b/containerd-shim-spin/src/trigger.rs index c32bc4b..72fbb21 100644 --- a/containerd-shim-spin/src/trigger.rs +++ b/containerd-shim-spin/src/trigger.rs @@ -1,34 +1,35 @@ use std::{collections::HashSet, future::Future, path::Path, pin::Pin}; use spin_app::{locked::LockedApp, App}; -use spin_runtime_factors::FactorsBuilder; +use spin_runtime_factors::{FactorsBuilder, TriggerFactors}; use spin_trigger::{ cli::{FactorsConfig, RuntimeFactorsBuilder, TriggerAppBuilder}, + loader::ComponentLoader, Trigger, }; use spin_trigger_http::HttpTrigger; use spin_trigger_redis::RedisTrigger; use crate::constants::{RUNTIME_CONFIG_PATH, SPIN_TRIGGER_WORKING_DIR}; -// use trigger_command::CommandTrigger; -// use trigger_mqtt::MqttTrigger; -// use trigger_sqs::SqsTrigger; +use trigger_command::CommandTrigger; +use trigger_mqtt::MqttTrigger; +use trigger_sqs::SqsTrigger; -pub(crate) const HTTP_TRIGGER_TYPE: &str = ::Factors, ->>::TYPE; -pub(crate) const REDIS_TRIGGER_TYPE: &str = ::Factors, ->>::TYPE; +pub(crate) const HTTP_TRIGGER_TYPE: &str = >::TYPE; +pub(crate) const REDIS_TRIGGER_TYPE: &str = >::TYPE; +pub(crate) const SQS_TRIGGER_TYPE: &str = >::TYPE; +pub(crate) const MQTT_TRIGGER_TYPE: &str = >::TYPE; +pub(crate) const COMMAND_TRIGGER_TYPE: &str = >::TYPE; -/// Run the trigger with the given `App` and `ComponentLoader`. +/// Run the trigger with the given CLI args, [`App`] and [`ComponentLoader`]. pub(crate) async fn run< T: Trigger<::Factors> + 'static, >( - trigger: T, + cli_args: T::CliArgs, app: App, - loader: &spin_trigger::loader::ComponentLoader, + loader: &ComponentLoader, ) -> anyhow::Result>>>> { + let trigger = T::new(cli_args, &app)?; let builder: TriggerAppBuilder<_, FactorsBuilder> = TriggerAppBuilder::new(trigger); let future = builder @@ -43,12 +44,11 @@ fn factors_config() -> FactorsConfig { let runtime_config_file = Path::new(RUNTIME_CONFIG_PATH) .exists() .then(|| RUNTIME_CONFIG_PATH.into()); - let factors_config = FactorsConfig { + FactorsConfig { working_dir: SPIN_TRIGGER_WORKING_DIR.into(), runtime_config_file, ..Default::default() - }; - factors_config + } } /// get the supported trigger types from the `LockedApp`. @@ -66,9 +66,9 @@ pub(crate) fn get_supported_triggers(locked_app: &LockedApp) -> anyhow::Result = HashSet::from([ HTTP_TRIGGER_TYPE, REDIS_TRIGGER_TYPE, - // SqsTrigger::TRIGGER_TYPE, - // MqttTrigger::TRIGGER_TYPE, - // CommandTrigger::TRIGGER_TYPE, + SQS_TRIGGER_TYPE, + COMMAND_TRIGGER_TYPE, + MQTT_TRIGGER_TYPE, ]); let mut types: Vec = Vec::with_capacity(locked_app.triggers.len()); diff --git a/tests/Cargo.toml b/tests/Cargo.toml index bbadd8d..3ecf383 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -20,4 +20,4 @@ http = "1.1" tower = "0.4" hyper = "1.4" redis = { version = "0.25", features = ["tokio-comp"] } -# rumqttc = "0.24.0" +rumqttc = "0.24.0"