oxidecomputer / oxidecomputer/progenitor
WASI HTTP version
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1k
- Forks
- 136
- Avg merge
- 8h 36m
- Merged PRs (30d)
- 14
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No repository files or tests are named. Start by reviewing the existing reqwest-based client path and comparing it with the linked progenitor-wasi-http fork, including its wstd dependency and wasi-http limitations. Done would require an agreed upstreaming design and corresponding implementation scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100