-
Notifications
You must be signed in to change notification settings - Fork 122
Description
We are building a platform (Golem) built on the WebAssembly system interface (WASI). Unfortunately reqwest at the moment does not support wasi-http (WASI's http interface), and although there are discussions and draft pull requests to introduce support for it, it does not look like it is going to happen anytime soon.
The most production ready Rust wrapper around wasi-http at the moment is the client in wstd that also includes a wasi compatible async runtime.
I've forked progenitor and made a wstd based version if it: https://github.com/golemcloud/progenitor-wasi-http
It has some serious limitations compared to the real version though, due to the limitations of wasi-http:
- no websocket upgrade
- no streaming (body and paging)
- more constrained requirements for what can be passed as a raw body
With all these limitations it's a very useful library for platforms based on wasi-http.
I would be happy to work on somehow making this part of the official library, but it's not straightforward at all, with reqwest completely replaced and all these other limitations introduced. Maybe it does not worth the effort; I primarily opened this issue to discuss this.
If there is interest in upstreaming it, let's discuss how; otherwise we can just keep it as a fork for now.