diff --git a/.devcontainer/bootstrap.sh b/.devcontainer/bootstrap.sh index 1446e5a9..2bd4f9ce 100644 --- a/.devcontainer/bootstrap.sh +++ b/.devcontainer/bootstrap.sh @@ -1,12 +1,5 @@ # Install Rustup Installer curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -# Install rust and other components -readonly RUST_UP_PATH=$HOME/.cargo/bin -$RUST_UP_PATH/rustup update stable && $RUST_UP_PATH/rustup default stable && $RUST_UP_PATH/rustup component add clippy rustfmt - -# Install wasm32-wasi target -$RUST_UP_PATH/rustup target add wasm32-wasi wasm32-unknown-unknown - # Install k3d curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 413f8a2d..5c944c3c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -1926,9 +1926,9 @@ dependencies = [ [[package]] name = "containerd-shim-wasm" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f71780ae9c43d9e0b9a8875016c0a0c9d3915eb3f2e1e27720e1ba660eab09" +checksum = "16c495945a2604e3de0bbecf120e84fb783a78b709f759a9e3935e6e85b98c85" dependencies = [ "anyhow", "caps", @@ -1941,24 +1941,30 @@ dependencies = [ "libc", "libcontainer", "log", + "mio", "nix 0.29.0", "oci-spec", "opentelemetry 0.23.0", "opentelemetry-otlp 0.16.0", "opentelemetry_sdk 0.23.0", + "prost 0.13.4", "protobuf 3.2.0", "serde", "serde_bytes", "serde_json", "sha256", "thiserror 2.0.11", + "time", "tokio", + "tokio-async-drop", "tokio-stream", + "toml", "tracing", "tracing-opentelemetry 0.24.0", "tracing-subscriber", + "trait-variant", "ttrpc-codegen", - "wasmparser 0.223.0", + "wasmparser 0.226.0", "wat", "windows-sys 0.59.0", "zygote", @@ -4121,9 +4127,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.169" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libcgroups" @@ -4368,9 +4374,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.26" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" dependencies = [ "value-bag", ] @@ -4970,9 +4976,9 @@ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl" -version = "0.10.71" +version = "0.10.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" dependencies = [ "bitflags 2.6.0", "cfg-if 1.0.0", @@ -5011,9 +5017,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" dependencies = [ "cc", "libc", @@ -7040,9 +7046,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.218" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -7068,9 +7074,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", @@ -7224,9 +7230,9 @@ dependencies = [ [[package]] name = "sha256" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18278f6a914fa3070aa316493f7d2ddfb9ac86ebc06fa3b83bffda487e9065b0" +checksum = "f880fc8562bdeb709793f00eb42a2ad0e672c4f883bbe59122b926eca935c8f6" dependencies = [ "async-trait", "bytes", @@ -8385,9 +8391,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.17.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" dependencies = [ "cfg-if 1.0.0", "fastrand 2.3.0", @@ -8587,6 +8593,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "tokio-async-drop" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e57fbf1da3f18c8a95469f8973c138b0a99f4ae761885c3646b0c61139b0522" + [[package]] name = "tokio-io-timeout" version = "1.2.0" @@ -8994,6 +9006,17 @@ dependencies = [ "tracing-serde", ] +[[package]] +name = "trait-variant" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "trigger-command" version = "0.2.2" @@ -9684,12 +9707,12 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.225.0" +version = "0.226.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f7eac0445cac73bcf09e6a97f83248d64356dccf9f2b100199769b6b42464e5" +checksum = "f7d81b727619aec227dce83e7f7420d4e56c79acd044642a356ea045b98d4e13" dependencies = [ "leb128fmt", - "wasmparser 0.225.0", + "wasmparser 0.226.0", ] [[package]] @@ -9860,9 +9883,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.223.0" +version = "0.226.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a99faceb1a5a84dd6084ec4bfa4b2ab153b5793b43fd8f58b89232634afc35" +checksum = "bc28600dcb2ba68d7e5f1c3ba4195c2bddc918c0243fd702d0b6dbd05689b681" dependencies = [ "bitflags 2.6.0", "hashbrown 0.15.2", @@ -9871,17 +9894,6 @@ dependencies = [ "serde", ] -[[package]] -name = "wasmparser" -version = "0.225.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36e5456165f81e64cb9908a0fe9b9d852c2c74582aa3fe2be3c2da57f937d3ae" -dependencies = [ - "bitflags 2.6.0", - "indexmap 2.7.0", - "semver", -] - [[package]] name = "wasmprinter" version = "0.2.80" @@ -10225,24 +10237,24 @@ dependencies = [ [[package]] name = "wast" -version = "225.0.0" +version = "226.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61496027ff707f9fa9e0b22c34ec163eb7adb1070df565e32a9180a76e4300b" +checksum = "0bb903956d0151eabb6c30a2304dd61e5c8d7182805226120c2b6d611fb09a26" dependencies = [ "bumpalo", "leb128fmt", "memchr", "unicode-width 0.2.0", - "wasm-encoder 0.225.0", + "wasm-encoder 0.226.0", ] [[package]] name = "wat" -version = "1.225.0" +version = "1.226.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e72a33942234fd0794bcdac30e43b448de3187512414267678e511c6755f11" +checksum = "5f89a90ef2c401b8b5b2b704020bfa7a7f69b93c3034c7a4b4a88e21e9966581" dependencies = [ - "wast 225.0.0", + "wast 226.0.0", ] [[package]] diff --git a/Makefile b/Makefile index 6509d96e..725c1234 100644 --- a/Makefile +++ b/Makefile @@ -147,8 +147,8 @@ tests/clean: # pin cross to a specific commit to avoid breaking changes .PHONY: install-cross install-k3d check-bins pod-status-check setup install-cross: - @if [ -z $$(which cross) ]; then cargo install cross --git https://github.com/cross-rs/cross --rev 5896ed1359642510855ca9ee50ce7fdf75c50e3c; fi - @cross -V 2>/dev/null | grep 5896ed1 || echo "WARN: unsupported version of cross found. Building containerd-shim-spin requires specific version of cross.\n\nPlease uninstall and run make install-cross to install the supported version." + @if [ -z $$(which cross) ]; then RUSTFLAGS="-A warnings" cargo install cross --git https://github.com/cross-rs/cross --rev 49338b18fdb82dedb2a813664e2e565ca73e2047; fi + @cross -V 2>/dev/null | grep 49338b1 || echo "WARN: unsupported version of cross found. Building containerd-shim-spin requires specific version of cross.\n\nPlease uninstall and run make install-cross to install the supported version." install-k3d: wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash diff --git a/containerd-shim-spin/Cargo.toml b/containerd-shim-spin/Cargo.toml index c06b3e50..09d43fc4 100644 --- a/containerd-shim-spin/Cargo.toml +++ b/containerd-shim-spin/Cargo.toml @@ -11,7 +11,7 @@ Containerd shim for running Spin workloads. """ [dependencies] -containerd-shim-wasm = { version ="0.9.0", default-features = false, features = ["opentelemetry"]} +containerd-shim-wasm = { version ="0.10.0", default-features = false, features = ["opentelemetry"]} http = "1" log = "0.4" spin-app = { git = "https://github.com/fermyon/spin", tag = "v3.1.2" } diff --git a/containerd-shim-spin/quickstart.md b/containerd-shim-spin/quickstart.md index b51bd660..ce45bbe5 100644 --- a/containerd-shim-spin/quickstart.md +++ b/containerd-shim-spin/quickstart.md @@ -86,10 +86,10 @@ Navigate to the directory where you created the application: cd qs-wasm-spin ``` -Use `rustup` to install the `wasm32-wasi` target and `spin build` to build the application. For example: +Use `rustup` to install the `wasm32-wasip1` target and `spin build` to build the application. For example: ```bash -rustup target add wasm32-wasi +rustup target add wasm32-wasip1 spin build ``` @@ -131,13 +131,13 @@ You have two choices for publishing spin apps. The steps to deploy are the same Create a `Dockerfile` at the root of the application directory with the following: ```dockerfile -FROM --platform=${BUILDPLATFORM} rust:1.71 AS build +FROM --platform=${BUILDPLATFORM} rust:1.85 AS build WORKDIR /opt/build COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release +RUN rustup target add wasm32-wasip1 && cargo build --target wasm32-wasip1 --release FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/qs_wasm_spin.wasm . +COPY --from=build /opt/build/target/wasm32-wasip1/release/qs_wasm_spin.wasm . COPY --from=build /opt/build/spin.toml . ``` @@ -153,7 +153,7 @@ source = "qs_wasm_spin.wasm" Use `docker` to build the container image and push it to the k3d registry: ```bash -docker buildx build --platform=wasi/wasm -t localhost:12345/qs-wasm-spin . +docker buildx build --platform=wasip1/wasm -t localhost:12345/qs-wasm-spin . docker push localhost:12345/qs-wasm-spin:latest ``` diff --git a/images/spin-dapr/.dockerignore b/images/spin-dapr/.dockerignore index fc8a9b5f..de696389 100644 --- a/images/spin-dapr/.dockerignore +++ b/images/spin-dapr/.dockerignore @@ -2,4 +2,6 @@ target/debug target/release target/wasm32-wasi/build target/wasm32-wasi/deps +target/wasm32-wasip1/build +target/wasm32-wasip1/deps .spin/ \ No newline at end of file diff --git a/images/spin-dapr/Dockerfile b/images/spin-dapr/Dockerfile index d8d08c8a..ad200bb6 100644 --- a/images/spin-dapr/Dockerfile +++ b/images/spin-dapr/Dockerfile @@ -1,4 +1,4 @@ FROM scratch COPY ./spin.toml . -COPY --chmod=0755 ./target/wasm32-wasi/release/spin_dapr.wasm /target/wasm32-wasi/release/spin_dapr.wasm -ENTRYPOINT ["/target/wasm32-wasi/release/spin_dapr.wasm"] \ No newline at end of file +COPY --chmod=0755 ./target/wasm32-wasip1/release/spin_dapr.wasm /target/wasm32-wasip1/release/spin_dapr.wasm +ENTRYPOINT ["/target/wasm32-wasip1/release/spin_dapr.wasm"] \ No newline at end of file diff --git a/images/spin-dapr/spin.toml b/images/spin-dapr/spin.toml index eb004775..ca0e871c 100644 --- a/images/spin-dapr/spin.toml +++ b/images/spin-dapr/spin.toml @@ -7,11 +7,11 @@ version = "0.1.0" [[component]] id = "spin-dapr" -source = "target/wasm32-wasi/release/spin_dapr.wasm" +source = "target/wasm32-wasip1/release/spin_dapr.wasm" allowed_http_hosts = [] [component.trigger] route = "/..." [component.build] -command = "cargo build --target wasm32-wasi --release" +command = "cargo build --target wasm32-wasip1 --release" watch = ["src/**/*.rs", "Cargo.toml"] diff --git a/images/spin-keyvalue/Dockerfile b/images/spin-keyvalue/Dockerfile index cf4724be..781a3333 100644 --- a/images/spin-keyvalue/Dockerfile +++ b/images/spin-keyvalue/Dockerfile @@ -1,8 +1,8 @@ -FROM --platform=${BUILDPLATFORM} rust:1.71 AS build +FROM --platform=${BUILDPLATFORM} rust:1.85 AS build WORKDIR /opt/build COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release +RUN rustup target add wasm32-wasip1 && cargo build --target wasm32-wasip1 --release FROM scratch COPY --from=build /opt/build/spin.toml ./spin.toml -COPY --from=build /opt/build/target/wasm32-wasi/release/spin_keyvalue.wasm ./target/wasm32-wasi/release/spin_keyvalue.wasm +COPY --from=build /opt/build/target/wasm32-wasip1/release/spin_keyvalue.wasm ./target/wasm32-wasip1/release/spin_keyvalue.wasm diff --git a/images/spin-keyvalue/spin.toml b/images/spin-keyvalue/spin.toml index f9605fd5..97fc5c80 100644 --- a/images/spin-keyvalue/spin.toml +++ b/images/spin-keyvalue/spin.toml @@ -11,10 +11,10 @@ route = "/keyvalue" component = "keyvalue" [component.keyvalue] -source = "target/wasm32-wasi/release/spin_keyvalue.wasm" +source = "target/wasm32-wasip1/release/spin_keyvalue.wasm" allowed_http_hosts = [] key_value_stores = ["foo"] [component.keyvalue.build] -command = "cargo build --target wasm32-wasi --release" +command = "cargo build --target wasm32-wasip1 --release" watch = ["src/**/*.rs", "Cargo.toml"] \ No newline at end of file diff --git a/images/spin-mqtt-message-logger/Dockerfile b/images/spin-mqtt-message-logger/Dockerfile index 4463655d..18365bae 100644 --- a/images/spin-mqtt-message-logger/Dockerfile +++ b/images/spin-mqtt-message-logger/Dockerfile @@ -1,8 +1,8 @@ -FROM --platform=${BUILDPLATFORM} rust:1.73 AS build +FROM --platform=${BUILDPLATFORM} rust:1.85 AS build WORKDIR /opt/build COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release +RUN rustup target add wasm32-wasip1 && cargo build --target wasm32-wasip1 --release FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/mqtt_message_logger.wasm ./target/wasm32-wasi/release/mqtt_message_logger.wasm +COPY --from=build /opt/build/target/wasm32-wasip1/release/mqtt_message_logger.wasm ./target/wasm32-wasip1/release/mqtt_message_logger.wasm COPY --from=build /opt/build/spin.toml . \ No newline at end of file diff --git a/images/spin-mqtt-message-logger/spin.toml b/images/spin-mqtt-message-logger/spin.toml index 4de25c3e..6517c1b3 100644 --- a/images/spin-mqtt-message-logger/spin.toml +++ b/images/spin-mqtt-message-logger/spin.toml @@ -22,8 +22,8 @@ topic = "{{ mqtt_topic }}" qos = "1" [component.mqtt-message-logger] -source = "target/wasm32-wasi/release/mqtt_message_logger.wasm" +source = "target/wasm32-wasip1/release/mqtt_message_logger.wasm" allowed_outbound_hosts = [] [component.mqtt-message-logger.build] -command = "cargo build --target wasm32-wasi --release" +command = "cargo build --target wasm32-wasip1 --release" watch = ["src/**/*.rs", "Cargo.toml"] \ No newline at end of file diff --git a/images/spin-multi-trigger-app/Dockerfile b/images/spin-multi-trigger-app/Dockerfile index e69728b5..f1f46ce0 100644 --- a/images/spin-multi-trigger-app/Dockerfile +++ b/images/spin-multi-trigger-app/Dockerfile @@ -1,15 +1,15 @@ -FROM --platform=${BUILDPLATFORM} rust:1.73 AS build +FROM --platform=${BUILDPLATFORM} rust:1.85 AS build WORKDIR /opt/build COPY . . -RUN rustup target add wasm32-wasi +RUN rustup target add wasm32-wasip1 WORKDIR /opt/build/spin-http-trigger -RUN cargo build --target wasm32-wasi --release +RUN cargo build --target wasm32-wasip1 --release WORKDIR /opt/build/spin-redis-trigger -RUN cargo build --target wasm32-wasi --release +RUN cargo build --target wasm32-wasip1 --release FROM scratch -COPY --from=build /opt/build/spin-http-trigger/target/wasm32-wasi/release/spin_http_trigger.wasm spin-http-trigger/target/wasm32-wasi/release/spin_http_trigger.wasm -COPY --from=build /opt/build/spin-redis-trigger/target/wasm32-wasi/release/spin_redis_trigger.wasm spin-redis-trigger/target/wasm32-wasi/release/spin_redis_trigger.wasm +COPY --from=build /opt/build/spin-http-trigger/target/wasm32-wasip1/release/spin_http_trigger.wasm spin-http-trigger/target/wasm32-wasip1/release/spin_http_trigger.wasm +COPY --from=build /opt/build/spin-redis-trigger/target/wasm32-wasip1/release/spin_redis_trigger.wasm spin-redis-trigger/target/wasm32-wasip1/release/spin_redis_trigger.wasm COPY --from=build /opt/build/spin.toml . \ No newline at end of file diff --git a/images/spin-multi-trigger-app/spin-redis-trigger/Dockerfile b/images/spin-multi-trigger-app/spin-redis-trigger/Dockerfile index f0dd45f9..c20f755f 100644 --- a/images/spin-multi-trigger-app/spin-redis-trigger/Dockerfile +++ b/images/spin-multi-trigger-app/spin-redis-trigger/Dockerfile @@ -1,8 +1,8 @@ -FROM --platform=${BUILDPLATFORM} rust:1.72 AS build +FROM --platform=${BUILDPLATFORM} rust:1.85 AS build WORKDIR /opt/build COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release +RUN rustup target add wasm32-wasip1 && cargo build --target wasm32-wasip1 --release FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/spin_redis_trigger.wasm ./target/wasm32-wasi/release/spin_redis_trigger.wasm +COPY --from=build /opt/build/target/wasm32-wasip1/release/spin_redis_trigger.wasm ./target/wasm32-wasip1/release/spin_redis_trigger.wasm COPY --from=build /opt/build/spin.toml . \ No newline at end of file diff --git a/images/spin-multi-trigger-app/spin-redis-trigger/spin.toml b/images/spin-multi-trigger-app/spin-redis-trigger/spin.toml index dd99efa5..f2fda813 100644 --- a/images/spin-multi-trigger-app/spin-redis-trigger/spin.toml +++ b/images/spin-multi-trigger-app/spin-redis-trigger/spin.toml @@ -15,11 +15,11 @@ channel = "{{ redis_channel }}" component = "hello" [component.hello] -source = "target/wasm32-wasi/release/spin_redis_trigger.wasm" +source = "target/wasm32-wasip1/release/spin_redis_trigger.wasm" allowed_outbound_hosts = ["redis://*:*"] [component.hello.build] -command = "cargo build --target wasm32-wasi --release" +command = "cargo build --target wasm32-wasip1 --release" [component.hello.variables] redis_address = "{{ redis_address }}" diff --git a/images/spin-multi-trigger-app/spin.toml b/images/spin-multi-trigger-app/spin.toml index 65f617c2..1d8a6197 100644 --- a/images/spin-multi-trigger-app/spin.toml +++ b/images/spin-multi-trigger-app/spin.toml @@ -15,10 +15,10 @@ route = "/..." component = "spin-http-trigger" [component.spin-http-trigger] -source = "spin-http-trigger/target/wasm32-wasi/release/spin_http_trigger.wasm" +source = "spin-http-trigger/target/wasm32-wasip1/release/spin_http_trigger.wasm" allowed_outbound_hosts = [] [component.spin-http-trigger.build] -command = "cargo build --target wasm32-wasi --release --manifest-path spin-http-trigger/Cargo.toml" +command = "cargo build --target wasm32-wasip1 --release --manifest-path spin-http-trigger/Cargo.toml" watch = ["src/**/*.rs", "Cargo.toml"] [[trigger.redis]] @@ -27,11 +27,11 @@ address = "{{ redis_address }}" component = "spin-redis-trigger" [component.spin-redis-trigger] -source = "spin-redis-trigger/target/wasm32-wasi/release/spin_redis_trigger.wasm" +source = "spin-redis-trigger/target/wasm32-wasip1/release/spin_redis_trigger.wasm" allowed_outbound_hosts = ["redis://*:*"] [component.spin-redis-trigger.variables] redis_address = "{{ redis_address }}" [component.spin-redis-trigger.build] -command = "cargo build --target wasm32-wasi --release --manifest-path spin-redis-trigger/Cargo.toml" \ No newline at end of file +command = "cargo build --target wasm32-wasip1 --release --manifest-path spin-redis-trigger/Cargo.toml" \ No newline at end of file diff --git a/images/spin-outbound-redis/Dockerfile b/images/spin-outbound-redis/Dockerfile index f1e21397..238cdb1e 100644 --- a/images/spin-outbound-redis/Dockerfile +++ b/images/spin-outbound-redis/Dockerfile @@ -1,8 +1,8 @@ -FROM --platform=${BUILDPLATFORM} rust:1.72 AS build +FROM --platform=${BUILDPLATFORM} rust:1.85 AS build WORKDIR /opt/build COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release +RUN rustup target add wasm32-wasip1 && cargo build --target wasm32-wasip1 --release FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/spin_outbound_redis.wasm ./target/wasm32-wasi/release/spin_outbound_redis.wasm +COPY --from=build /opt/build/target/wasm32-wasip1/release/spin_outbound_redis.wasm ./target/wasm32-wasip1/release/spin_outbound_redis.wasm COPY --from=build /opt/build/spin.toml . \ No newline at end of file diff --git a/images/spin-outbound-redis/spin.toml b/images/spin-outbound-redis/spin.toml index ca9f4d89..6461b820 100644 --- a/images/spin-outbound-redis/spin.toml +++ b/images/spin-outbound-redis/spin.toml @@ -14,7 +14,7 @@ route = "hello" component = "hello" [component.hello] -source = "target/wasm32-wasi/release/spin_outbound_redis.wasm" +source = "target/wasm32-wasip1/release/spin_outbound_redis.wasm" allowed_outbound_hosts = ["redis://*:*"] [component.hello.variables] @@ -22,4 +22,4 @@ redis_address = "{{ redis_address }}" redis_channel = "{{ redis_channel }}" [component.hello.build] -command = "cargo build --target wasm32-wasi --release" \ No newline at end of file +command = "cargo build --target wasm32-wasip1 --release" \ No newline at end of file diff --git a/images/spin/Dockerfile b/images/spin/Dockerfile index ae033fc5..fd2f6513 100644 --- a/images/spin/Dockerfile +++ b/images/spin/Dockerfile @@ -1,7 +1,7 @@ -FROM --platform=${BUILDPLATFORM} rust:1.81 AS build +FROM --platform=${BUILDPLATFORM} rust:1.85 AS build WORKDIR /opt/build COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release +RUN rustup target add wasm32-wasip1 && cargo build --target wasm32-wasip1 --release FROM --platform=linux/amd64 golang:1.23.2-bullseye AS build-go WORKDIR /opt/build @@ -10,6 +10,6 @@ RUN curl -LO https://github.com/tinygo-org/tinygo/releases/download/v0.34.0/tiny RUN cd go-hello && tinygo build -target=wasi -o spin_go_hello.wasm main.go FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/spin_rust_hello.wasm ./target/wasm32-wasi/release/spin_rust_hello.wasm +COPY --from=build /opt/build/target/wasm32-wasip1/release/spin_rust_hello.wasm ./target/wasm32-wasip1/release/spin_rust_hello.wasm COPY --from=build /opt/build/spin.toml . COPY --from=build-go /opt/build/go-hello/spin_go_hello.wasm ./go-hello/spin_go_hello.wasm diff --git a/images/spin/spin.toml b/images/spin/spin.toml index 65cb1b60..afbec805 100644 --- a/images/spin/spin.toml +++ b/images/spin/spin.toml @@ -16,10 +16,10 @@ route = "/go-hello" component = "go-hello" [component.hello] -source = "target/wasm32-wasi/release/spin_rust_hello.wasm" +source = "target/wasm32-wasip1/release/spin_rust_hello.wasm" [component.hello.build] -command = "cargo build --target wasm32-wasi --release" +command = "cargo build --target wasm32-wasip1 --release" watch = ["src/**/*.rs", "Cargo.toml"] [component.go-hello] diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 8d030ed7..f6e0f222 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.81.0" +channel = "1.85.0" components = ["clippy", "rustfmt"] -targets = ["wasm32-wasi", "wasm32-unknown-unknown"] +targets = ["wasm32-wasip1", "wasm32-unknown-unknown"] profile = "default" diff --git a/scripts/setup-linux.sh b/scripts/setup-linux.sh index 14a0479c..027cd0c6 100755 --- a/scripts/setup-linux.sh +++ b/scripts/setup-linux.sh @@ -2,10 +2,6 @@ sudo apt -y update sudo apt-get install -y protobuf-compiler libseccomp-dev -echo "setting up rust" -sudo rustup toolchain install --component clippy --component rustfmt --no-self-update stable -sudo rustup target add wasm32-wasi && sudo rustup target add wasm32-unknown-unknown - ## setup tinygo. required for building test spin app echo "setting up tinygo" wget https://github.com/tinygo-org/tinygo/releases/download/v0.34.0/tinygo_0.34.0_amd64.deb