Repository: bytecodealliance/wasmtime
Pull request #7625 (2023-12-02 00:22:16)

Add `fields.has` to query if a header is present in a `fields`
As discussed in https://github.com/WebAssembly/wasi-http/issues/82, it would be nice to be able to know when a header value exists, vs when it's empty.
<!--
Please make sure you include the following information:

- If this work has been discussed elsewhere, please include a link to that
  conversation. If it was discussed in an issue, just mention "issue #...".

- Explain why this change is needed. If the details are in an issue already,
  this can be brief.

Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.html

Please ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->


alexcrichton: Also, should this also be sent upstream to WebAssembly/wasi-http?
elliottt: Upstream pr: https://github.com/WebAssembly/wasi-http/pull/91

Patch:
diff --git a/Cargo.lock b/Cargo.lock
index 498d1ca0b..7de50af65 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -226,7 +226,7 @@ checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
 
 [[package]]
 name = "byte-array-literals"
-version = "16.0.0"
+version = "17.0.0"
 
 [[package]]
 name = "byteorder"
@@ -563,7 +563,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "cranelift-codegen",
  "cranelift-frontend",
@@ -571,14 +571,14 @@ dependencies = [
 
 [[package]]
 name = "cranelift-bforest"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "cranelift-entity",
 ]
 
 [[package]]
 name = "cranelift-codegen"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "anyhow",
  "bincode",
@@ -606,25 +606,25 @@ dependencies = [
 
 [[package]]
 name = "cranelift-codegen-meta"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "cranelift-codegen-shared",
 ]
 
 [[package]]
 name = "cranelift-codegen-shared"
-version = "0.103.0"
+version = "0.104.0"
 
 [[package]]
 name = "cranelift-control"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "arbitrary",
 ]
 
 [[package]]
 name = "cranelift-entity"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "serde",
  "serde_derive",
@@ -663,7 +663,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-frontend"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "cranelift-codegen",
  "hashbrown 0.14.0",
@@ -687,7 +687,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-interpreter"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "cranelift-codegen",
  "cranelift-entity",
@@ -701,7 +701,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-isle"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "codespan-reporting",
  "log",
@@ -710,7 +710,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-jit"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "anyhow",
  "cranelift",
@@ -731,7 +731,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-module"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -743,7 +743,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-native"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "cranelift-codegen",
  "libc",
@@ -752,7 +752,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-object"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -767,7 +767,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-reader"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -777,7 +777,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-serde"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "clap",
  "cranelift-codegen",
@@ -824,7 +824,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-wasm"
-version = "0.103.0"
+version = "0.104.0"
 dependencies = [
  "cranelift-codegen",
  "cranelift-entity",
@@ -2895,7 +2895,7 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "verify-component-adapter"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "wasmparser",
@@ -2945,7 +2945,7 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasi-cap-std-sync"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -2967,7 +2967,7 @@ dependencies = [
 
 [[package]]
 name = "wasi-common"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "bitflags 2.4.1",
@@ -2991,7 +2991,7 @@ dependencies = [
 
 [[package]]
 name = "wasi-preview1-component-adapter"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "byte-array-literals",
  "object",
@@ -3002,7 +3002,7 @@ dependencies = [
 
 [[package]]
 name = "wasi-tokio"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "cap-std",
@@ -3192,7 +3192,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3232,14 +3232,14 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-asm-macros"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "wasmtime-bench-api"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "cap-std",
@@ -3256,14 +3256,14 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-c-api"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "wasmtime-c-api-impl",
 ]
 
 [[package]]
 name = "wasmtime-c-api-impl"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "cap-std",
@@ -3290,7 +3290,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-cache"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "base64",
@@ -3312,7 +3312,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-cli"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3367,7 +3367,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-cli-flags"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "clap",
@@ -3380,7 +3380,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-component-macro"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "component-macro-test-helpers",
@@ -3396,11 +3396,11 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-component-util"
-version = "16.0.0"
+version = "17.0.0"
 
 [[package]]
 name = "wasmtime-cranelift"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "cfg-if",
@@ -3423,7 +3423,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-cranelift-shared"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -3437,7 +3437,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-environ"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "clap",
@@ -3475,7 +3475,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-explorer"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "capstone",
@@ -3489,7 +3489,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-fiber"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "backtrace",
@@ -3558,7 +3558,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-jit"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "addr2line",
  "anyhow",
@@ -3583,7 +3583,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-jit-debug"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "object",
  "once_cell",
@@ -3593,7 +3593,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-jit-icache-coherence"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "cfg-if",
  "libc",
@@ -3602,7 +3602,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-runtime"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "cc",
@@ -3633,7 +3633,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-types"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "cranelift-entity",
  "serde",
@@ -3644,7 +3644,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-versioned-export-macros"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3653,7 +3653,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wasi"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3691,7 +3691,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wasi-http"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3717,7 +3717,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wasi-nn"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "openvino",
@@ -3730,7 +3730,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wasi-threads"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "log",
@@ -3742,7 +3742,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wast"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "log",
@@ -3752,7 +3752,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-winch"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -3767,7 +3767,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wit-bindgen"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "heck",
@@ -3777,7 +3777,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wmemcheck"
-version = "16.0.0"
+version = "17.0.0"
 
 [[package]]
 name = "wast"
@@ -3838,7 +3838,7 @@ dependencies = [
 
 [[package]]
 name = "wiggle"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3855,7 +3855,7 @@ dependencies = [
 
 [[package]]
 name = "wiggle-generate"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "anyhow",
  "heck",
@@ -3868,7 +3868,7 @@ dependencies = [
 
 [[package]]
 name = "wiggle-macro"
-version = "16.0.0"
+version = "17.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3923,7 +3923,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "winch-codegen"
-version = "0.14.0"
+version = "0.15.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
diff --git a/Cargo.toml b/Cargo.toml
index fd9e77dba..d89162d30 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -128,7 +128,7 @@ exclude = [
 ]
 
 [workspace.package]
-version = "16.0.0"
+version = "17.0.0"
 authors = ["The Wasmtime Project Developers"]
 edition = "2021"
 # Wasmtime's current policy is that this number can be no larger than the
@@ -150,59 +150,59 @@ all = 'allow'
 
 [workspace.dependencies]
 arbitrary = { version = "1.3.1" }
-wasmtime-wmemcheck = { path = "crates/wmemcheck", version = "=16.0.0" }
-wasmtime = { path = "crates/wasmtime", version = "16.0.0", default-features = false }
-wasmtime-cache = { path = "crates/cache", version = "=16.0.0" }
-wasmtime-cli-flags = { path = "crates/cli-flags", version = "=16.0.0" }
-wasmtime-cranelift = { path = "crates/cranelift", version = "=16.0.0" }
-wasmtime-cranelift-shared = { path = "crates/cranelift-shared", version = "=16.0.0" }
-wasmtime-winch = { path = "crates/winch", version = "=16.0.0" }
-wasmtime-environ = { path = "crates/environ", version = "=16.0.0" }
-wasmtime-explorer = { path = "crates/explorer", version = "=16.0.0" }
-wasmtime-fiber = { path = "crates/fiber", version = "=16.0.0" }
-wasmtime-types = { path = "crates/types", version = "16.0.0" }
-wasmtime-jit = { path = "crates/jit", version = "=16.0.0" }
-wasmtime-jit-debug = { path = "crates/jit-debug", version = "=16.0.0" }
-wasmtime-runtime = { path = "crates/runtime", version = "=16.0.0" }
-wasmtime-wast = { path = "crates/wast", version = "=16.0.0" }
-wasmtime-wasi = { path = "crates/wasi", version = "16.0.0", default-features = false }
-wasmtime-wasi-http = { path = "crates/wasi-http", version = "=16.0.0", default-features = false }
-wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "16.0.0" }
-wasmtime-wasi-threads = { path = "crates/wasi-threads", version = "16.0.0" }
-wasmtime-component-util = { path = "crates/component-util", version = "=16.0.0" }
-wasmtime-component-macro = { path = "crates/component-macro", version = "=16.0.0" }
-wasmtime-asm-macros = { path = "crates/asm-macros", version = "=16.0.0" }
-wasmtime-versioned-export-macros = { path = "crates/versioned-export-macros", version = "=16.0.0" }
+wasmtime-wmemcheck = { path = "crates/wmemcheck", version = "=17.0.0" }
+wasmtime = { path = "crates/wasmtime", version = "17.0.0", default-features = false }
+wasmtime-cache = { path = "crates/cache", version = "=17.0.0" }
+wasmtime-cli-flags = { path = "crates/cli-flags", version = "=17.0.0" }
+wasmtime-cranelift = { path = "crates/cranelift", version = "=17.0.0" }
+wasmtime-cranelift-shared = { path = "crates/cranelift-shared", version = "=17.0.0" }
+wasmtime-winch = { path = "crates/winch", version = "=17.0.0" }
+wasmtime-environ = { path = "crates/environ", version = "=17.0.0" }
+wasmtime-explorer = { path = "crates/explorer", version = "=17.0.0" }
+wasmtime-fiber = { path = "crates/fiber", version = "=17.0.0" }
+wasmtime-types = { path = "crates/types", version = "17.0.0" }
+wasmtime-jit = { path = "crates/jit", version = "=17.0.0" }
+wasmtime-jit-debug = { path = "crates/jit-debug", version = "=17.0.0" }
+wasmtime-runtime = { path = "crates/runtime", version = "=17.0.0" }
+wasmtime-wast = { path = "crates/wast", version = "=17.0.0" }
+wasmtime-wasi = { path = "crates/wasi", version = "17.0.0", default-features = false }
+wasmtime-wasi-http = { path = "crates/wasi-http", version = "=17.0.0", default-features = false }
+wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "17.0.0" }
+wasmtime-wasi-threads = { path = "crates/wasi-threads", version = "17.0.0" }
+wasmtime-component-util = { path = "crates/component-util", version = "=17.0.0" }
+wasmtime-component-macro = { path = "crates/component-macro", version = "=17.0.0" }
+wasmtime-asm-macros = { path = "crates/asm-macros", version = "=17.0.0" }
+wasmtime-versioned-export-macros = { path = "crates/versioned-export-macros", version = "=17.0.0" }
 component-test-util = { path = "crates/misc/component-test-util" }
 component-fuzz-util = { path = "crates/misc/component-fuzz-util" }
-wiggle = { path = "crates/wiggle", version = "=16.0.0", default-features = false }
-wiggle-macro = { path = "crates/wiggle/macro", version = "=16.0.0" }
-wiggle-generate = { path = "crates/wiggle/generate", version = "=16.0.0" }
-wasi-common = { path = "crates/wasi-common", version = "=16.0.0" }
-wasi-tokio = { path = "crates/wasi-common/tokio", version = "=16.0.0" }
-wasi-cap-std-sync = { path = "crates/wasi-common/cap-std-sync", version = "=16.0.0" }
+wiggle = { path = "crates/wiggle", version = "=17.0.0", default-features = false }
+wiggle-macro = { path = "crates/wiggle/macro", version = "=17.0.0" }
+wiggle-generate = { path = "crates/wiggle/generate", version = "=17.0.0" }
+wasi-common = { path = "crates/wasi-common", version = "=17.0.0" }
+wasi-tokio = { path = "crates/wasi-common/tokio", version = "=17.0.0" }
+wasi-cap-std-sync = { path = "crates/wasi-common/cap-std-sync", version = "=17.0.0" }
 wasmtime-fuzzing = { path = "crates/fuzzing" }
-wasmtime-jit-icache-coherence = { path = "crates/jit-icache-coherence", version = "=16.0.0" }
-wasmtime-wit-bindgen = { path = "crates/wit-bindgen", version = "=16.0.0" }
+wasmtime-jit-icache-coherence = { path = "crates/jit-icache-coherence", version = "=17.0.0" }
+wasmtime-wit-bindgen = { path = "crates/wit-bindgen", version = "=17.0.0" }
 test-programs-artifacts = { path = 'crates/test-programs/artifacts' }
 
-cranelift-wasm = { path = "cranelift/wasm", version = "0.103.0" }
-cranelift-codegen = { path = "cranelift/codegen", version = "0.103.0", default-features = false, features = ["std", "unwind"] }
-cranelift-frontend = { path = "cranelift/frontend", version = "0.103.0" }
-cranelift-entity = { path = "cranelift/entity", version = "0.103.0" }
-cranelift-native = { path = "cranelift/native", version = "0.103.0" }
-cranelift-module = { path = "cranelift/module", version = "0.103.0" }
-cranelift-interpreter = { path = "cranelift/interpreter", version = "0.103.0" }
-cranelift-reader = { path = "cranelift/reader", version = "0.103.0" }
+cranelift-wasm = { path = "cranelift/wasm", version = "0.104.0" }
+cranelift-codegen = { path = "cranelift/codegen", version = "0.104.0", default-features = false, features = ["std", "unwind"] }
+cranelift-frontend = { path = "cranelift/frontend", version = "0.104.0" }
+cranelift-entity = { path = "cranelift/entity", version = "0.104.0" }
+cranelift-native = { path = "cranelift/native", version = "0.104.0" }
+cranelift-module = { path = "cranelift/module", version = "0.104.0" }
+cranelift-interpreter = { path = "cranelift/interpreter", version = "0.104.0" }
+cranelift-reader = { path = "cranelift/reader", version = "0.104.0" }
 cranelift-filetests = { path = "cranelift/filetests" }
-cranelift-object = { path = "cranelift/object", version = "0.103.0" }
-cranelift-jit = { path = "cranelift/jit", version = "0.103.0" }
+cranelift-object = { path = "cranelift/object", version = "0.104.0" }
+cranelift-jit = { path = "cranelift/jit", version = "0.104.0" }
 cranelift-fuzzgen = { path = "cranelift/fuzzgen" }
-cranelift-bforest = { path = "cranelift/bforest", version = "0.103.0" }
-cranelift-control = { path = "cranelift/control", version = "0.103.0" }
-cranelift = { path = "cranelift/umbrella", version = "0.103.0" }
+cranelift-bforest = { path = "cranelift/bforest", version = "0.104.0" }
+cranelift-control = { path = "cranelift/control", version = "0.104.0" }
+cranelift = { path = "cranelift/umbrella", version = "0.104.0" }
 
-winch-codegen = { path = "winch/codegen", version = "=0.14.0" }
+winch-codegen = { path = "winch/codegen", version = "=0.15.0" }
 winch-filetests = { path = "winch/filetests" }
 winch-test-macros = { path = "winch/test-macros" }
 
diff --git a/RELEASES.md b/RELEASES.md
index 5c97e7bd4..8c60992f1 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -1,5 +1,15 @@
 --------------------------------------------------------------------------------
 
+## 17.0.0
+
+Unreleased.
+
+### Added
+
+### Changed
+
+--------------------------------------------------------------------------------
+
 ## 16.0.0
 
 Unreleased.
diff --git a/cranelift/bforest/Cargo.toml b/cranelift/bforest/Cargo.toml
index 46103432e..09a5e0c2b 100644
--- a/cranelift/bforest/Cargo.toml
+++ b/cranelift/bforest/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-bforest"
-version = "0.103.0"
+version = "0.104.0"
 description = "A forest of B+-trees"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-bforest"
diff --git a/cranelift/codegen/Cargo.toml b/cranelift/codegen/Cargo.toml
index 25ae26af1..f8f128e1a 100644
--- a/cranelift/codegen/Cargo.toml
+++ b/cranelift/codegen/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-codegen"
-version = "0.103.0"
+version = "0.104.0"
 description = "Low-level code generator library"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-codegen"
@@ -19,7 +19,7 @@ workspace = true
 anyhow = { workspace = true, optional = true }
 bumpalo = "3"
 capstone = { workspace = true, optional = true }
-cranelift-codegen-shared = { path = "./shared", version = "0.103.0" }
+cranelift-codegen-shared = { path = "./shared", version = "0.104.0" }
 cranelift-entity = { workspace = true }
 cranelift-bforest = { workspace = true }
 cranelift-control = { workspace = true }
@@ -44,8 +44,8 @@ criterion = { version = "0.5.0", features = ["html_reports"] }
 similar = "2.1.0"
 
 [build-dependencies]
-cranelift-codegen-meta = { path = "meta", version = "0.103.0" }
-cranelift-isle = { path = "../isle/isle", version = "=0.103.0" }
+cranelift-codegen-meta = { path = "meta", version = "0.104.0" }
+cranelift-isle = { path = "../isle/isle", version = "=0.104.0" }
 
 [features]
 default = ["std", "unwind", "host-arch", "timing"]
diff --git a/cranelift/codegen/meta/Cargo.toml b/cranelift/codegen/meta/Cargo.toml
index d3121ee49..fab88a03a 100644
--- a/cranelift/codegen/meta/Cargo.toml
+++ b/cranelift/codegen/meta/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "cranelift-codegen-meta"
 authors = ["The Cranelift Project Developers"]
-version = "0.103.0"
+version = "0.104.0"
 description = "Metaprogram for cranelift-codegen code generator library"
 license = "Apache-2.0 WITH LLVM-exception"
 repository = "https://github.com/bytecodealliance/wasmtime"
@@ -15,4 +15,4 @@ workspace = true
 rustdoc-args = [ "--document-private-items" ]
 
 [dependencies]
-cranelift-codegen-shared = { path = "../shared", version = "0.103.0" }
+cranelift-codegen-shared = { path = "../shared", version = "0.104.0" }
diff --git a/cranelift/codegen/shared/Cargo.toml b/cranelift/codegen/shared/Cargo.toml
index 9187f8382..b5fd7caf7 100644
--- a/cranelift/codegen/shared/Cargo.toml
+++ b/cranelift/codegen/shared/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-codegen-shared"
-version = "0.103.0"
+version = "0.104.0"
 description = "For code shared between cranelift-codegen-meta and cranelift-codegen"
 license = "Apache-2.0 WITH LLVM-exception"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/control/Cargo.toml b/cranelift/control/Cargo.toml
index 2d7856581..28e82d3fd 100644
--- a/cranelift/control/Cargo.toml
+++ b/cranelift/control/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-control"
-version = "0.103.0"
+version = "0.104.0"
 description = "White-box fuzz testing framework"
 license = "Apache-2.0 WITH LLVM-exception"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/entity/Cargo.toml b/cranelift/entity/Cargo.toml
index ce6d90b5a..3e424c4c3 100644
--- a/cranelift/entity/Cargo.toml
+++ b/cranelift/entity/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-entity"
-version = "0.103.0"
+version = "0.104.0"
 description = "Data structures using entity references as mapping keys"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-entity"
diff --git a/cranelift/frontend/Cargo.toml b/cranelift/frontend/Cargo.toml
index 7c803de42..86a939068 100644
--- a/cranelift/frontend/Cargo.toml
+++ b/cranelift/frontend/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-frontend"
-version = "0.103.0"
+version = "0.104.0"
 description = "Cranelift IR builder helper"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-frontend"
diff --git a/cranelift/interpreter/Cargo.toml b/cranelift/interpreter/Cargo.toml
index 0661624f4..b4117bb03 100644
--- a/cranelift/interpreter/Cargo.toml
+++ b/cranelift/interpreter/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-interpreter"
-version = "0.103.0"
+version = "0.104.0"
 authors = ["The Cranelift Project Developers"]
 description = "Interpret Cranelift IR"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/isle/isle/Cargo.toml b/cranelift/isle/isle/Cargo.toml
index 0176b5725..91c02d814 100644
--- a/cranelift/isle/isle/Cargo.toml
+++ b/cranelift/isle/isle/Cargo.toml
@@ -6,7 +6,7 @@ license = "Apache-2.0 WITH LLVM-exception"
 name = "cranelift-isle"
 readme = "../README.md"
 repository = "https://github.com/bytecodealliance/wasmtime/tree/main/cranelift/isle"
-version = "0.103.0"
+version = "0.104.0"
 
 [lints]
 workspace = true
diff --git a/cranelift/jit/Cargo.toml b/cranelift/jit/Cargo.toml
index d8e5cafca..b8a4c9d48 100644
--- a/cranelift/jit/Cargo.toml
+++ b/cranelift/jit/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-jit"
-version = "0.103.0"
+version = "0.104.0"
 authors = ["The Cranelift Project Developers"]
 description = "A JIT library backed by Cranelift"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/module/Cargo.toml b/cranelift/module/Cargo.toml
index b063361ee..962c1a05b 100644
--- a/cranelift/module/Cargo.toml
+++ b/cranelift/module/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-module"
-version = "0.103.0"
+version = "0.104.0"
 authors = ["The Cranelift Project Developers"]
 description = "Support for linking functions and data with Cranelift"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/native/Cargo.toml b/cranelift/native/Cargo.toml
index 7cb7d2f56..676faa761 100644
--- a/cranelift/native/Cargo.toml
+++ b/cranelift/native/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-native"
-version = "0.103.0"
+version = "0.104.0"
 authors = ["The Cranelift Project Developers"]
 description = "Support for targeting the host with Cranelift"
 documentation = "https://docs.rs/cranelift-native"
diff --git a/cranelift/object/Cargo.toml b/cranelift/object/Cargo.toml
index 6f2027ad0..3a5a3f63e 100644
--- a/cranelift/object/Cargo.toml
+++ b/cranelift/object/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-object"
-version = "0.103.0"
+version = "0.104.0"
 authors = ["The Cranelift Project Developers"]
 description = "Emit Cranelift output to native object files with `object`"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/reader/Cargo.toml b/cranelift/reader/Cargo.toml
index a559ed46d..2d43aa649 100644
--- a/cranelift/reader/Cargo.toml
+++ b/cranelift/reader/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-reader"
-version = "0.103.0"
+version = "0.104.0"
 description = "Cranelift textual IR reader"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-reader"
diff --git a/cranelift/serde/Cargo.toml b/cranelift/serde/Cargo.toml
index 79aa48126..4ff26b83c 100644
--- a/cranelift/serde/Cargo.toml
+++ b/cranelift/serde/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-serde"
-version = "0.103.0"
+version = "0.104.0"
 authors = ["The Cranelift Project Developers"]
 description = "Serializer/Deserializer for Cranelift IR"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/umbrella/Cargo.toml b/cranelift/umbrella/Cargo.toml
index eabeafd6f..1d785ac19 100644
--- a/cranelift/umbrella/Cargo.toml
+++ b/cranelift/umbrella/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift"
-version = "0.103.0"
+version = "0.104.0"
 description = "Umbrella for commonly-used cranelift crates"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift"
diff --git a/cranelift/wasm/Cargo.toml b/cranelift/wasm/Cargo.toml
index 0ffe3bf91..4401b19f1 100644
--- a/cranelift/wasm/Cargo.toml
+++ b/cranelift/wasm/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-wasm"
-version = "0.103.0"
+version = "0.104.0"
 authors = ["The Cranelift Project Developers"]
 description = "Translator from WebAssembly to Cranelift IR"
 documentation = "https://docs.rs/cranelift-wasm"
diff --git a/crates/c-api/include/wasmtime.h b/crates/c-api/include/wasmtime.h
index fb1e36f64..9dac550e4 100644
--- a/crates/c-api/include/wasmtime.h
+++ b/crates/c-api/include/wasmtime.h
@@ -205,11 +205,11 @@
 /**
  * \brief Wasmtime version string.
  */
-#define WASMTIME_VERSION "16.0.0"
+#define WASMTIME_VERSION "17.0.0"
 /**
  * \brief Wasmtime major version number.
  */
-#define WASMTIME_VERSION_MAJOR 16
+#define WASMTIME_VERSION_MAJOR 17
 /**
  * \brief Wasmtime minor version number.
  */
diff --git a/crates/wasi-http/src/types_impl.rs b/crates/wasi-http/src/types_impl.rs
index 4ecb27481..74ee18c2f 100644
--- a/crates/wasi-http/src/types_impl.rs
+++ b/crates/wasi-http/src/types_impl.rs
@@ -145,20 +145,34 @@ impl<T: WasiHttpView> crate::bindings::http::types::HostFields for T {
         fields: Resource<HostFields>,
         name: String,
     ) -> wasmtime::Result<Vec<Vec<u8>>> {
+        let fields = get_fields(self.table(), &fields).context("[fields_get] getting fields")?;
+
         let header = match hyper::header::HeaderName::from_bytes(name.as_bytes()) {
             Ok(header) => header,
             Err(_) => return Ok(vec![]),
         };
 
-        let res = get_fields(self.table(), &fields)
-            .context("[fields_get] getting fields")?
-            .get_all(header)
+        if !fields.contains_key(&header) {
+            return Ok(vec![]);
+        }
+
+        let res = fields
+            .get_all(&header)
             .into_iter()
             .map(|val| val.as_bytes().to_owned())
             .collect();
         Ok(res)
     }
 
+    fn has(&mut self, fields: Resource<HostFields>, name: String) -> wasmtime::Result<bool> {
+        let fields = get_fields(self.table(), &fields).context("[fields_get] getting fields")?;
+
+        match hyper::header::HeaderName::from_bytes(name.as_bytes()) {
+            Ok(header) => Ok(fields.contains_key(&header)),
+            Err(_) => Ok(false),
+        }
+    }
+
     fn set(
         &mut self,
         fields: Resource<HostFields>,
diff --git a/crates/wasi-http/wit/deps/http/types.wit b/crates/wasi-http/wit/deps/http/types.wit
index c42f841bf..0f698e769 100644
--- a/crates/wasi-http/wit/deps/http/types.wit
+++ b/crates/wasi-http/wit/deps/http/types.wit
@@ -169,9 +169,16 @@ interface types {
       entries: list<tuple<field-key,field-value>>
     ) -> result<fields, header-error>;
 
-    /// Get all of the values corresponding to a key.
+    /// Get all of the values corresponding to a key. If the key is not present
+    /// in this `fields`, an empty list is returned. However, if the key is
+    /// present but empty, this is represented by a list with one or more
+    /// empty field-values present.
     get: func(name: field-key) -> list<field-value>;
 
+    /// Returns `true` when the key is present in this `fields`. If the key is
+    /// syntactically invalid, `false` is returned.
+    has: func(name: field-key) -> bool;
+
     /// Set all of the values for a key. Clears any existing values for that
     /// key, if they have been set.
     ///
@@ -191,7 +198,7 @@ interface types {
     append: func(name: field-key, value: field-value) -> result<_, header-error>;
 
     /// Retrieve the full set of keys and values in the Fields. Like the
-    /// constructor, the list represents each key-value pair. 
+    /// constructor, the list represents each key-value pair.
     ///
     /// The outer list represents each key-value pair in the Fields. Keys
     /// which have multiple values are represented by multiple entries in this
@@ -308,8 +315,9 @@ interface types {
     headers: func() -> headers;
   }
 
-  /// Parameters for making an HTTP Request. Each of these parameters is an
-  /// optional timeout, applicable to the transport layer of the HTTP protocol.
+  /// Parameters for making an HTTP Request. Each of these parameters is
+  /// currently an optional timeout applicable to the transport layer of the
+  /// HTTP protocol.
   ///
   /// These timeouts are separate from any the user may use to bound a
   /// blocking call to `wasi:io/poll.poll`.
diff --git a/crates/wasi/wit/deps/http/types.wit b/crates/wasi/wit/deps/http/types.wit
index c42f841bf..0f698e769 100644
--- a/crates/wasi/wit/deps/http/types.wit
+++ b/crates/wasi/wit/deps/http/types.wit
@@ -169,9 +169,16 @@ interface types {
       entries: list<tuple<field-key,field-value>>
     ) -> result<fields, header-error>;
 
-    /// Get all of the values corresponding to a key.
+    /// Get all of the values corresponding to a key. If the key is not present
+    /// in this `fields`, an empty list is returned. However, if the key is
+    /// present but empty, this is represented by a list with one or more
+    /// empty field-values present.
     get: func(name: field-key) -> list<field-value>;
 
+    /// Returns `true` when the key is present in this `fields`. If the key is
+    /// syntactically invalid, `false` is returned.
+    has: func(name: field-key) -> bool;
+
     /// Set all of the values for a key. Clears any existing values for that
     /// key, if they have been set.
     ///
@@ -191,7 +198,7 @@ interface types {
     append: func(name: field-key, value: field-value) -> result<_, header-error>;
 
     /// Retrieve the full set of keys and values in the Fields. Like the
-    /// constructor, the list represents each key-value pair. 
+    /// constructor, the list represents each key-value pair.
     ///
     /// The outer list represents each key-value pair in the Fields. Keys
     /// which have multiple values are represented by multiple entries in this
@@ -308,8 +315,9 @@ interface types {
     headers: func() -> headers;
   }
 
-  /// Parameters for making an HTTP Request. Each of these parameters is an
-  /// optional timeout, applicable to the transport layer of the HTTP protocol.
+  /// Parameters for making an HTTP Request. Each of these parameters is
+  /// currently an optional timeout applicable to the transport layer of the
+  /// HTTP protocol.
   ///
   /// These timeouts are separate from any the user may use to bound a
   /// blocking call to `wasi:io/poll.poll`.
diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock
index fe9e858e9..3ac5dbc48 100644
--- a/supply-chain/imports.lock
+++ b/supply-chain/imports.lock
@@ -9,6 +9,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-bforest]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -17,6 +21,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-bforest]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-codegen]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -25,6 +33,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-codegen]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-codegen-meta]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -33,6 +45,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-codegen-meta]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-codegen-shared]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -41,6 +57,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-codegen-shared]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-control]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -49,6 +69,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-control]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-entity]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -57,6 +81,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-entity]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-frontend]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -65,6 +93,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-frontend]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-interpreter]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -73,6 +105,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-interpreter]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-isle]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -81,6 +117,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-isle]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-jit]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -89,6 +129,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-jit]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-module]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -97,6 +141,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-module]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-native]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -105,6 +153,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-native]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-object]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -113,6 +165,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-object]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-reader]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -121,6 +177,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-reader]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-serde]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -129,6 +189,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-serde]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.cranelift-wasm]]
 version = "0.102.0"
 audited_as = "0.101.2"
@@ -137,6 +201,10 @@ audited_as = "0.101.2"
 version = "0.103.0"
 audited_as = "0.101.4"
 
+[[unpublished.cranelift-wasm]]
+version = "0.104.0"
+audited_as = "0.102.1"
+
 [[unpublished.wasi-cap-std-sync]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -145,6 +213,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasi-cap-std-sync]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasi-common]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -153,6 +225,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasi-common]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasi-tokio]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -161,6 +237,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasi-tokio]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -169,6 +249,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-asm-macros]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -177,6 +261,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-asm-macros]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-cache]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -185,6 +273,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-cache]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-cli]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -193,6 +285,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-cli]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-cli-flags]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -201,6 +297,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-cli-flags]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-component-macro]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -209,6 +309,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-component-macro]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-component-util]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -217,6 +321,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-component-util]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-cranelift]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -225,6 +333,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-cranelift]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-cranelift-shared]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -233,6 +345,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-cranelift-shared]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-environ]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -241,6 +357,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-environ]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-explorer]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -249,6 +369,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-explorer]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-fiber]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -257,6 +381,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-fiber]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-jit]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -265,6 +393,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-jit]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-jit-debug]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -273,6 +405,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-jit-debug]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-jit-icache-coherence]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -281,6 +417,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-jit-icache-coherence]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-runtime]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -289,6 +429,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-runtime]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-types]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -297,6 +441,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-types]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-wasi]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -305,6 +453,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-wasi]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-wasi-http]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -313,6 +465,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-wasi-http]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-wasi-nn]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -321,6 +477,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-wasi-nn]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-wasi-threads]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -329,6 +489,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-wasi-threads]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-wast]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -337,6 +501,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-wast]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-winch]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -345,6 +513,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-winch]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-wit-bindgen]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -353,6 +525,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-wit-bindgen]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wasmtime-wmemcheck]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -361,6 +537,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wasmtime-wmemcheck]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wiggle]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -369,6 +549,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wiggle]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wiggle-generate]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -377,6 +561,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wiggle-generate]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wiggle-macro]]
 version = "15.0.0"
 audited_as = "14.0.2"
@@ -385,6 +573,10 @@ audited_as = "14.0.2"
 version = "16.0.0"
 audited_as = "14.0.4"
 
+[[unpublished.wiggle-macro]]
+version = "17.0.0"
+audited_as = "15.0.1"
+
 [[unpublished.wiggle-test]]
 version = "0.0.0"
 audited_as = "0.1.0"
@@ -397,6 +589,10 @@ audited_as = "0.12.2"
 version = "0.14.0"
 audited_as = "0.12.4"
 
+[[unpublished.winch-codegen]]
+version = "0.15.0"
+audited_as = "0.13.1"
+
 [[publisher.aho-corasick]]
 version = "1.0.2"
 when = "2023-06-04"
@@ -577,6 +773,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-bforest]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -589,6 +791,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-bforest]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-codegen]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -601,6 +809,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-codegen]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-codegen-meta]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -613,6 +827,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-codegen-meta]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-codegen-shared]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -625,6 +845,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-codegen-shared]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-control]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -637,6 +863,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-control]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-entity]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -649,6 +881,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-entity]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-frontend]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -661,6 +899,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-frontend]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-interpreter]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -673,6 +917,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-interpreter]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-isle]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -685,6 +935,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-isle]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-jit]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -697,6 +953,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-jit]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-module]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -709,6 +971,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-module]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-native]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -721,6 +989,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-native]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-object]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -733,6 +1007,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-object]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-reader]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -745,6 +1025,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-reader]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-serde]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -757,6 +1043,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-serde]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-wasm]]
 version = "0.101.2"
 when = "2023-10-26"
@@ -769,6 +1061,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-wasm]]
+version = "0.102.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.derive_arbitrary]]
 version = "1.3.0"
 when = "2023-03-13"
@@ -1109,6 +1407,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasi-cap-std-sync]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasi-common]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1121,6 +1425,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasi-common]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasi-tokio]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1133,6 +1443,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasi-tokio]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasm-bindgen]]
 version = "0.2.87"
 when = "2023-06-12"
@@ -1383,6 +1699,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-asm-macros]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1395,6 +1717,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-asm-macros]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cache]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1407,6 +1735,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cache]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cli]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1419,6 +1753,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cli]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cli-flags]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1431,6 +1771,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cli-flags]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-component-macro]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1443,6 +1789,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-component-macro]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-component-util]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1455,6 +1807,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-component-util]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cranelift]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1467,6 +1825,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cranelift]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cranelift-shared]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1479,6 +1843,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cranelift-shared]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-environ]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1491,6 +1861,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-environ]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-explorer]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1503,6 +1879,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-explorer]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-fiber]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1515,6 +1897,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-fiber]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-jit]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1527,6 +1915,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-jit]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-jit-debug]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1539,6 +1933,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-jit-debug]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-jit-icache-coherence]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1551,6 +1951,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-jit-icache-coherence]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-runtime]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1563,6 +1969,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-runtime]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-types]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1575,6 +1987,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-types]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wasi]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1587,6 +2005,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wasi]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wasi-http]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1599,6 +2023,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wasi-http]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wasi-nn]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1611,6 +2041,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wasi-nn]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wasi-threads]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1623,6 +2059,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wasi-threads]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wast]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1635,6 +2077,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wast]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-winch]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1647,6 +2095,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-winch]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wit-bindgen]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1659,6 +2113,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wit-bindgen]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wmemcheck]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1671,6 +2131,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wmemcheck]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wast]]
 version = "66.0.2"
 when = "2023-10-14"
@@ -1753,6 +2219,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wiggle]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wiggle-generate]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1765,6 +2237,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wiggle-generate]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wiggle-macro]]
 version = "14.0.2"
 when = "2023-10-26"
@@ -1777,6 +2255,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wiggle-macro]]
+version = "15.0.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wiggle-test]]
 version = "0.1.0"
 when = "2020-03-12"
@@ -1803,6 +2287,12 @@ when = "2023-11-01"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.winch-codegen]]
+version = "0.13.1"
+when = "2023-12-01"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.windows-sys]]
 version = "0.48.0"
 when = "2023-03-31"
diff --git a/winch/codegen/Cargo.toml b/winch/codegen/Cargo.toml
index e24628e35..05729e96f 100644
--- a/winch/codegen/Cargo.toml
+++ b/winch/codegen/Cargo.toml
@@ -4,7 +4,7 @@ name = "winch-codegen"
 description = "Winch code generation library"
 license = "Apache-2.0 WITH LLVM-exception"
 repository = "https://github.com/bytecodealliance/wasmtime"
-version = "0.14.0"
+version = "0.15.0"
 edition.workspace = true
 
 [lints]


Test patch:
diff --git a/crates/test-programs/src/bin/api_proxy.rs b/crates/test-programs/src/bin/api_proxy.rs
index 33114699b..a0b26cfd7 100644
--- a/crates/test-programs/src/bin/api_proxy.rs
+++ b/crates/test-programs/src/bin/api_proxy.rs
@@ -24,7 +24,7 @@ impl bindings::exports::wasi::http::incoming_handler::Guest for T {
         let req_hdrs = request.headers();
 
         assert!(
-            req_hdrs.get(&header).is_empty(),
+            !req_hdrs.has(&header),
             "forbidden `custom-forbidden-header` found in request"
         );
 
@@ -32,7 +32,7 @@ impl bindings::exports::wasi::http::incoming_handler::Guest for T {
         assert!(req_hdrs.append(&header, &b"no".to_vec()).is_err());
 
         assert!(
-            req_hdrs.get(&header).is_empty(),
+            !req_hdrs.has(&header),
             "append of forbidden header succeeded"
         );