<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in handler.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>511638f5 - Refactor `wasi:http` headers&apos; host representation (#12754)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#511638f5</link>
        <description>Refactor `wasi:http` headers&apos; host representation (#12754)* Refactor `wasi:http` headers&apos; host representationThis commit is a follow-on/extension of #12748 and extends the changesmade for WASIp2 headers in #12652 to the WASIp3 implementation as well.This is done through a number of refactorings to make the WASIp2 andWASIp3 implementations more similar in terms of how they representheaders. Changes here are:* `FieldMap` now has its own dedicated module at the crate root instead  of intermingling with other WASIp2 types.* `FieldMap` is now internally-`Arc`&apos;d and is cheaply clonable.  `FieldMap` itself now tracks whether it&apos;s mutable or immutable (WASI  semantics) and doesn&apos;t need different wrappers in WASIp2 and WASIp3.* Creation of an immutable `FieldMap` can be done without needing a size  limit. Flagging a `FieldMap` as mutable, however, requires a size limit.* `FieldMap::set` was added to be a bit more efficient w.r.t. clones.* `FieldMapError` is a new error type that covers all of the possible  error modes of operating with a `FieldMap`. Conversions from this to  WASIp{2,3} `header-error` types are now implemented as well.* WASIp2 now flags `header-error` as a trappable-error-type, allowing  the use of `?` in implementing header functions (like WASIp3).* Much of WASIp2&apos;s header implementation was refactored with `?`, moving  methods around, shuffling where headers are made vs `FieldMap`, some  minor idioms, etc.* WASIp3 no longer uses `MaybeMutable` for headers and instead uses  `FieldMap` directly.cc #12674* Clippy warnings

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Tue, 10 Mar 2026 21:49:13 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>365e2d89 - Refactor WASIp2 `wasi:http` implementation  (#12748)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#365e2d89</link>
        <description>Refactor WASIp2 `wasi:http` implementation  (#12748)* Sequester WASIp2 in `wasmtime-wasi-http` to a moduleThis mirrors the `wasmtime-wasi` crate&apos;s organization where there&apos;s a`p2` module and a `p3` module at the top level.* Refactor WASIp2 `wasi:http` implementationThis commit reorganizes and refactors the WASIp2 implementation of`wasi:http` to look more like other `wasmtime-wasi`-style interfaces.Specifically the old `WasiHttpImpl&lt;T&gt;` structure is removed in favor ofas `WasiHttpCtxView&lt;&apos;_&gt;` type that is used to implementbindgen-generated `Host` traits. This necessitated reorganizing themethods of the previous `WasiHttpView` trait like so:* The `WasiHttpView` trait is renamed to `WasiHttpHooks` to make space  for a new `WasiHttpView` which behaves like `WasiView`, for example.* The `ctx` and `table` methods of `WasiHttpHooks` were removed since  they&apos;ll be fields in `WasiHttpCtxView`.* Helper methods for WASIp2 were moved to methods on `WasiHttpCtxView`  instead of default methods on `WasiHttpHooks`.With these changes in place the WASIp3 organization was also updatedslightly as well. Notably WASIp3 now contains a reference to the crate&apos;s`WasiHttpCtx` structure (which has field limits for example). WASIp3&apos;sprevious `WasiHttpCtx` trait is now renamed to `WasiHttpHooks` as well.This means that there are two `WasiHttpHooks` traits right now, one forWASIp2 and one for WASIp3. In the future I would like to unify these twobut that will require some more work around the default `send_request`.A final note here is that the `WasiHttpHooks` trait previously, andcontinues to be, optional for embedders to implement. Default functionsare provided as `wasmtime_wasi_http::{p2, p3}::default_hooks`.Additionally there&apos;s a `Default for &amp;mut dyn WasiHttpHooks`implementation, too.With all that outlined: the motivation for this change is to bring theWASIp2 and WASIp3 implementations of `wasi:http` closer together. Thisis inspired by refactorings I was doing for #12674 to apply the sameheader limitations for WASIp3 as is done for WASIp2. Prior to thischange there were a number of differences such as WASIp3 not having`crate::WasiHttpCtx` around, WASIp2 having a different organization ofstructures/borrows, etc. The goal is to bring the two implementationscloser in line with each other to make refactoring across them moreconsistent and easier.* Make `WasiHttp` in WASIp2 public* Fix some conditional build* Fix some doctests* Fix configured build* Fixup documentation

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Tue, 10 Mar 2026 16:24:22 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>1cc0bcff - feat(p3)!: vendor 0.3.0-rc-2026-01-06 (#12250)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#1cc0bcff</link>
        <description>feat(p3)!: vendor 0.3.0-rc-2026-01-06 (#12250)* feat(p3)!: vendor 0.3.0-rc-2026-01-06Update wasmtime&apos;s WASI implementation from version0.3.0-rc-2025-09-16 to 0.3.0-rc-2026-01-06, using wkg for WIT vendoring.This involves API changes in clocks and HTTP.* Handle some review comments* Update WASI implementations to avoid `as`This can have a loss in precision so this shuffles around some types toensure that `try_into` and friends are always used instead of `as`. Thischanges the source-of-truth for timestamps to be `i64` seconds so WASIp2is the odd-one-out that can&apos;t represent negative timestamps.* Flag expected WASI failures* Get wasi:http tests working again* Rename `proxy` module to `service` to reflect the WIT world.* Adjust the middleware test to using the `middleware` world.---------Co-authored-by: Alex Crichton &lt;alex@alexcrichton.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Tue, 13 Jan 2026 22:47:24 +0000</pubDate>
        <dc:creator>Bailey Hayes &lt;ricochet@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>85d8cc06 - Migrate wasi-http to `wasmtime::error` (#12291)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#85d8cc06</link>
        <description>Migrate wasi-http to `wasmtime::error` (#12291)* Migrate wiggle and wiggle generate to `wasmtime::error`* Fix testing `wiggle` and `wiggle-test` in isolationWhen doing plain old `cargo test -p wiggle` (or `wiggle-test`) the test wouldfail due to linking errors because Wasmtime&apos;s `std` cargo feature (and maybeothers) wasn&apos;t being enabled. The crate&apos;s tests would pass when run as part ofthe whole workspace, however, because of cargo feature resolution and othercrates that enabled the necessary features, which is why CI is green.* Remove direct anyhow dependency in wiggle-test* Migrate wasi-nn to `wasmtime::error`* Migrate wasi-keyvalue to `wasmtime::error`* Migrate wasi-io to `wasmtime::error`* Migrate wasi-http to `wasmtime::error`

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Thu, 08 Jan 2026 20:33:01 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4b7f3df3 - fix `Request::into_http`, use in `handle` (#11970)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#4b7f3df3</link>
        <description>fix `Request::into_http`, use in `handle` (#11970)* fix `Request::into_http`, use in `handle`Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* doc: use correct body trait refSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;---------Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Mon, 03 Nov 2025 17:29:34 +0000</pubDate>
        <dc:creator>Roman Volosatovs &lt;rvolosatovs@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>8e22ff89 - wasi-http: use UnsyncBoxBody to support axum (#11941)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#8e22ff89</link>
        <description>wasi-http: use UnsyncBoxBody to support axum (#11941)The Body type used by the axum web application framework is not Sync,and not compatible with http_body_util::combinations::BoxBody. Luckily,an alternative UnsyncBoxBody exists.Replace all wasi-http p3 usages of BoxBody with UnsyncBoxBody.Some wasi-http p2 code refers directly to hyper types which use thesync BoxBody. Do not modify those.

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Sun, 26 Oct 2025 10:07:27 +0000</pubDate>
        <dc:creator>Jelle van den Hooff &lt;jelle@vandenhooff.name&gt;</dc:creator>
    </item>
<item>
        <title>da633618 - support continuing host-to-host streams after store is dropped (#11763)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#da633618</link>
        <description>support continuing host-to-host streams after store is dropped (#11763)* add `StreamReader::try_into` and use it in `Response::into_http_with_getter`This allows the embedder to consume a host-created `StreamReader` and extractthe `StreamProducer` (or an `Unpin` subset of it) used to create it.  Thisenables &quot;short-circuiting&quot; host-to-host streams, bypassing the guest entirely.Concretely, it is now possible to dispose of a `wasi:http/handler@0.3.x` guestand its store before the request and/or response bodies have finished streamingin the case where both the read and write ends of the body stream are owned bythe host.  In this case, the inbound body is reused as the outbound body with noadditional processing or memory overhead.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* spawn tokio task instead of store task for outbound requestsPreviously, `wasmtime-wasi-http`&apos;s outbound request handler used`Accessor::spawn` to spawn the connection future for a given outbound request,but that meant the request stopped making progress when the store was dropped.That&apos;s a problem for a proxy scenario where the guest task just wants to make anoutgoing request and return the response (or at least the body of that response)and then exit.  At that point, we should be able to drop the instance and itsstore and expect the body stream will continue to flow.  Using`tokio::task::spawn` ensures that will happen.Fixes #11703Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* test host-to-host streaming in wasi-http p3 testsIn the process of adding these tests, I found that we were leaking subtaskswhich had exited but not been dropped by their supertask by the time thatsupertask was dropped, so I&apos;ve fixed that.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* address review feedbackSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;---------Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Tue, 30 Sep 2025 20:15:07 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>53059995 - feat(p3-http): implement `consume-body` changes (#11653)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#53059995</link>
        <description>feat(p3-http): implement `consume-body` changes (#11653)* feat(p3-http): implement `consume-body` changesSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* Update WITs to the latest snapshot* Use the 2025-09-16 tag instead of 2025-08-15.* Pulls in `wasi:http` updates &quot;officially&quot;.* Pulls in minor `wasi:cli` updates, and that&apos;s implemented here as  well.---------Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;Co-authored-by: Alex Crichton &lt;alex@alexcrichton.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Wed, 17 Sep 2025 15:17:13 +0000</pubDate>
        <dc:creator>Roman Volosatovs &lt;rvolosatovs@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>5a2860ce - p3-http: rework `content-length` handling (#11658)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#5a2860ce</link>
        <description>p3-http: rework `content-length` handling (#11658)* p3-http: correctly handle `result` future cancellationSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* p3-http: restructure the `content-length` test a bitSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* test(http): keep accepting connections after errorsprtest:fullSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* test(p3-http): assert `handle` error on exceeding `content-length`Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* p3-http: perform `content-length` check earlySigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* test(p3-http): account for `handle` race conditionSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor(http): reuse `get_content_length`Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* p3-http: check `content-length` for host bodiesSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* doc(p3-http): call out that host bodies are not validatedSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* p3-http: refactor body size error sendSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* fix(p3-http): do not rely on `Drop` for host body checkSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* doc(p3-http): ensure non-default send request is documentedSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* doc(p3-http): correct `send_request` docSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;---------Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Wed, 10 Sep 2025 14:21:03 +0000</pubDate>
        <dc:creator>Roman Volosatovs &lt;rvolosatovs@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>d1139ae2 - p3-http: implementation follow-up (#11649)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#d1139ae2</link>
        <description>p3-http: implementation follow-up (#11649)* p3: refactor future producers/consumersSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* p3-http: tie lifetime of the spawned task to the bodiesSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* p3-http: improve docsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;---------Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Tue, 09 Sep 2025 15:13:21 +0000</pubDate>
        <dc:creator>Roman Volosatovs &lt;rvolosatovs@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>f3d72564 - p3-http: finish `wasi:http@0.3` implementation (#11636)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#f3d72564</link>
        <description>p3-http: finish `wasi:http@0.3` implementation (#11636)* refactor(p3-http): use trappable errorsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* feat(p3-http): implement `content-length` handlingSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor(p3-http): remove a few resource utilitiesSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* remove unused test importSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* fix(p3-http): close stream handles on dropSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* test(p3-http): stream responses backThis is something we&apos;ve been doing in wasip3, but I forgot to port thisoverSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* doc(p3-http): add missing docs, internalize more, simplifySigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor(p3-http): extract `Body::consume`Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor(p3-http): clean-up `content-length` error reportingSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor(p3-http): drop elided lifetimeSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* fix(p3-http): avoid guest body deadlock hazardSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor(p3-http): add more docs, clean-upSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* doc(p3-http): add more docsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* fix(p3-http): rework result future handlingMost importantly this avoids a race condition between `content-length` error observed by `GuestBody`and hyper I/O driverSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* add new imports after rebaseSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* clean-up `poll_consume`Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* assert content-length `handle` resultsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* relax `content_length` test `handle` assertSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;---------Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Tue, 09 Sep 2025 07:58:06 +0000</pubDate>
        <dc:creator>Roman Volosatovs &lt;rvolosatovs@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>5674e4b4 - feat(p3): implement `wasi:http` (#11440)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#5674e4b4</link>
        <description>feat(p3): implement `wasi:http` (#11440)* feat(p3-http): begin implementationSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* feat(p3-http): implement incoming HTTPSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* feat(p3-http): switch to new APISigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* feat(p3-http): begin outgoing implementationSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* test(p3-http): test invalid headerSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* fix(p3-http): await I/O if future receiver droppedSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* Re-internalize some fieldsTry to keep fields private and use public ctors instead.* Uncomment `p3_http_outbound_request_content_length` testIt&apos;s still semi-failing, but defer that to #11631* Get tests passing CI again---------Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;Co-authored-by: Alex Crichton &lt;alex@alexcrichton.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Sun, 07 Sep 2025 22:17:28 +0000</pubDate>
        <dc:creator>Roman Volosatovs &lt;rvolosatovs@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>6f6a514b - feat(p3): begin `wasi:http` implementation (#11439)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs#6f6a514b</link>
        <description>feat(p3): begin `wasi:http` implementation (#11439)* doc: fix typo in p3 filesystem refSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* build: vendor `wasi:http@0.3.0` WITSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* feat(p3-http): scaffold p3 implementationSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* test(p3-http): add testsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* chore(p3-http): add utils used by p3 testsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* chore: add `expect` reasonsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* address review commentsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* establish `conn` connections on dropSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;---------Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;

            List of files:
            /wasmtime-44.0.1/crates/wasi-http/src/p3/host/handler.rs</description>
        <pubDate>Fri, 15 Aug 2025 17:53:44 +0000</pubDate>
        <dc:creator>Roman Volosatovs &lt;rvolosatovs@users.noreply.github.com&gt;</dc:creator>
    </item>
</channel>
</rss>
