Spin 3.4 is here with some great quality-of-life enhancements! You can now make outgoing HTTP/2 requests, opening the door to faster APIs and gRPC backends with no extra setup. Postgres got a big boost too: connections are now pooled automatically for better performance under load, and you can use more data types like UUID, JSONB, ranges, arrays, decimals, and INTERVAL. On top of that, Spin templates now include a schema directive in spin.toml, so you’ll get instant validation and code completion right in your editor when scaffolding new applications!
As always, thanks to contributors old and new for helping improve Spin on a daily basis! Special thanks to new contributors @seun-ja and @gdamjan, welcome to the project!
Verifying the Release Signature
After downloading the v3.4.0
release of Spin, either via the artifact attached to this release corresponding to your OS/architecture combination or via the installation method of your choice, you are ready to verify the release signature.
First, install cosign. This is the tool we'll use to perform signature verification. Then run the following command:
cosign verify-blob \
--signature spin.sig --certificate crt.pem \
--certificate-identity https://github.com/spinframework/spin/.github/workflows/release.yml@refs/tags/v3.4.0 \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-github-workflow-sha 4f671bea25f17dea6d9e494bc918469043a75366 \
--certificate-github-workflow-repository spinframework/spin \
spin
If the verification passed, you should see:
Verified OK
What's Changed
- Bump version for next anticipated release by @fibonacci1729 in #3157
- fix: enable compiling when
unsafe-aot-compilation
feat enabled by @kate-goldenring in #3159 - Move outbound networking config to new crate by @rylev in #3167
- Move router to its own separate crate by @rylev in #3169
- Update wasm-pkg-common so we can build some crates for wasm target by @rylev in #3171
- Update to Wasmtime 34.0.0 by @alexcrichton in #3172
- Don't mark outbound http spans as errors. by @rylev in #3158
- Clippy 1.88 fixes by @itowlson in #3178
- Selective error spans in variables and key-value by @rylev in #3176
- Warn if
spin deploy
rather thanspin cloud deploy
by @itowlson in #3173 - The, er, rest of the Clippy 1.88 lints by @itowlson in #3181
- Fuller and more explicit docs in manifest schema by @itowlson in #3179
- fix(templates/http-go): enable GC on builds by @adamreese in #3131
- Enable HTTP2 for outgoing requests by @fibonacci1729 in #3174
- chore: dedup send_request_handler by @fibonacci1729 in #3184
- Bump rustc version to 1.86.0 in CI by @fibonacci1729 in #3187
- Fix spin-factor-outbound-http tests by @lann in #3190
- Refactor configuration env vars for pooling by @alexcrichton in #3191
- adding custom port in cli opt-in by @seun-ja in #3182
- outbound-http: Remove host header with http2 by @lann in #3194
- Pin Zig CI to the version against which the template was written by @itowlson in #3195
- isolate and handle unix error by @seun-ja in #3192
- ref(templates/go): use spinframework import path by @adamreese in #3116
- fix(templates/http-go): fix go.mod in go templates by @adamreese in #3198
- Initialise git repo in new app by @itowlson in #3197
- Remove WASI P1 compatibility check tooling by @itowlson in #3200
- Smoke test local templates as well as remote ones by @itowlson in #3199
- cargo: update onig and onig_sys by @gdamjan in #3204
- Ensure valid wasms when publishing app by @fibonacci1729 in #3206
- chore(crates/core): fix typo by @vdice in #3209
- Upgrade wasmtime to v35.0.0 by @fibonacci1729 in #3186
- added flag for clearing log files at restart by @seun-ja in #3203
- Pool Postgres connections by @itowlson in #3043
- Add schema directive to template manifests by @itowlson in #3180
- Factor out variable azure/vault providers into separate crates by @fibonacci1729 in #3215
- Allow providing static variables via the cli by @fibonacci1729 in #3216
- Allow optional description for manifest variables by @fibonacci1729 in #3219
- expressions: Fix Display for Template escaping by @lann in #3223
- outbound-networking refactoring by @lann in #3168
- PostgreSQL UUID and JSONB support by @itowlson in #3175
- Link language SDKs in the readme by @itowlson in #3225
- Validate allowed_outbound_hosts template with defaults by @lann in #3224
- enable connection pooling and reuse for outbound wasi-http by @dicej in #3229
- fix compiler warnings in nightly by @bacongobbler in #3208
- Appease clippy 0.1.89 by @lann in #3232
- Rev conformance-tests back to official by @itowlson in #3236
- enables incoming http2 stream by @seun-ja in #3227
- selects only id when checking existence of data by @seun-ja in #3233
- move the nginx HTTP2 bug workaround by @dicej in #3239
- share WASI outbound HTTP connection pool across instances by @dicej in #3240
- Validate target environments by @itowlson in #2806
- Update to Wasmtime 36.0.1 by @alexcrichton in #3237
- Bump versions for v3.4 release by @fibonacci1729 in #3243
New Contributors
Full Changelog: v3.3.1...v3.4.0