v3.4.0
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 https://github.com/spinframework/spin/pull/3157
- fix: enable compiling when
unsafe-aot-compilationfeat enabled by @kate-goldenring in https://github.com/spinframework/spin/pull/3159 - Move outbound networking config to new crate by @rylev in https://github.com/spinframework/spin/pull/3167
- Move router to its own separate crate by @rylev in https://github.com/spinframework/spin/pull/3169
- Update wasm-pkg-common so we can build some crates for wasm target by @rylev in https://github.com/spinframework/spin/pull/3171
- Update to Wasmtime 34.0.0 by @alexcrichton in https://github.com/spinframework/spin/pull/3172
- Don't mark outbound http spans as errors. by @rylev in https://github.com/spinframework/spin/pull/3158
- Clippy 1.88 fixes by @itowlson in https://github.com/spinframework/spin/pull/3178
- Selective error spans in variables and key-value by @rylev in https://github.com/spinframework/spin/pull/3176
- Warn if
spin deployrather thanspin cloud deployby @itowlson in https://github.com/spinframework/spin/pull/3173 - The, er, rest of the Clippy 1.88 lints by @itowlson in https://github.com/spinframework/spin/pull/3181
- Fuller and more explicit docs in manifest schema by @itowlson in https://github.com/spinframework/spin/pull/3179
- fix(templates/http-go): enable GC on builds by @adamreese in https://github.com/spinframework/spin/pull/3131
- Enable HTTP2 for outgoing requests by @fibonacci1729 in https://github.com/spinframework/spin/pull/3174
- chore: dedup send_request_handler by @fibonacci1729 in https://github.com/spinframework/spin/pull/3184
- Bump rustc version to 1.86.0 in CI by @fibonacci1729 in https://github.com/spinframework/spin/pull/3187
- Fix spin-factor-outbound-http tests by @lann in https://github.com/spinframework/spin/pull/3190
- Refactor configuration env vars for pooling by @alexcrichton in https://github.com/spinframework/spin/pull/3191
- adding custom port in cli opt-in by @seun-ja in https://github.com/spinframework/spin/pull/3182
- outbound-http: Remove host header with http2 by @lann in https://github.com/spinframework/spin/pull/3194
- Pin Zig CI to the version against which the template was written by @itowlson in https://github.com/spinframework/spin/pull/3195
- isolate and handle unix error by @seun-ja in https://github.com/spinframework/spin/pull/3192
- ref(templates/go): use spinframework import path by @adamreese in https://github.com/spinframework/spin/pull/3116
- fix(templates/http-go): fix go.mod in go templates by @adamreese in https://github.com/spinframework/spin/pull/3198
- Initialise git repo in new app by @itowlson in https://github.com/spinframework/spin/pull/3197
- Remove WASI P1 compatibility check tooling by @itowlson in https://github.com/spinframework/spin/pull/3200
- Smoke test local templates as well as remote ones by @itowlson in https://github.com/spinframework/spin/pull/3199
- cargo: update onig and onig_sys by @gdamjan in https://github.com/spinframework/spin/pull/3204
- Ensure valid wasms when publishing app by @fibonacci1729 in https://github.com/spinframework/spin/pull/3206
- chore(crates/core): fix typo by @vdice in https://github.com/spinframework/spin/pull/3209
- Upgrade wasmtime to v35.0.0 by @fibonacci1729 in https://github.com/spinframework/spin/pull/3186
- added flag for clearing log files at restart by @seun-ja in https://github.com/spinframework/spin/pull/3203
- Pool Postgres connections by @itowlson in https://github.com/spinframework/spin/pull/3043
- Add schema directive to template manifests by @itowlson in https://github.com/spinframework/spin/pull/3180
- Factor out variable azure/vault providers into separate crates by @fibonacci1729 in https://github.com/spinframework/spin/pull/3215
- Allow providing static variables via the cli by @fibonacci1729 in https://github.com/spinframework/spin/pull/3216
- Allow optional description for manifest variables by @fibonacci1729 in https://github.com/spinframework/spin/pull/3219
- expressions: Fix Display for Template escaping by @lann in https://github.com/spinframework/spin/pull/3223
- outbound-networking refactoring by @lann in https://github.com/spinframework/spin/pull/3168
- PostgreSQL UUID and JSONB support by @itowlson in https://github.com/spinframework/spin/pull/3175
- Link language SDKs in the readme by @itowlson in https://github.com/spinframework/spin/pull/3225
- Validate allowed_outbound_hosts template with defaults by @lann in https://github.com/spinframework/spin/pull/3224
- enable connection pooling and reuse for outbound wasi-http by @dicej in https://github.com/spinframework/spin/pull/3229
- fix compiler warnings in nightly by @bacongobbler in https://github.com/spinframework/spin/pull/3208
- Appease clippy 0.1.89 by @lann in https://github.com/spinframework/spin/pull/3232
- Rev conformance-tests back to official by @itowlson in https://github.com/spinframework/spin/pull/3236
- enables incoming http2 stream by @seun-ja in https://github.com/spinframework/spin/pull/3227
- selects only id when checking existence of data by @seun-ja in https://github.com/spinframework/spin/pull/3233
- move the nginx HTTP2 bug workaround by @dicej in https://github.com/spinframework/spin/pull/3239
- share WASI outbound HTTP connection pool across instances by @dicej in https://github.com/spinframework/spin/pull/3240
- Validate target environments by @itowlson in https://github.com/spinframework/spin/pull/2806
- Update to Wasmtime 36.0.1 by @alexcrichton in https://github.com/spinframework/spin/pull/3237
- Bump versions for v3.4 release by @fibonacci1729 in https://github.com/spinframework/spin/pull/3243
New Contributors
- @seun-ja made their first contribution in https://github.com/spinframework/spin/pull/3182
- @gdamjan made their first contribution in https://github.com/spinframework/spin/pull/3204
Full Changelog: https://github.com/spinframework/spin/compare/v3.3.1...v3.4.0