46个版本 (25个重大更新)

新版本 0.27.0 2024年8月23日
0.25.2 2024年7月11日
0.19.0 2024年3月27日

#72WebAssembly

Download history 800/week @ 2024-05-03 646/week @ 2024-05-10 506/week @ 2024-05-17 949/week @ 2024-05-24 893/week @ 2024-05-31 1797/week @ 2024-06-07 827/week @ 2024-06-14 1285/week @ 2024-06-21 839/week @ 2024-06-28 1999/week @ 2024-07-05 1772/week @ 2024-07-12 2032/week @ 2024-07-19 2249/week @ 2024-07-26 1583/week @ 2024-08-02 1232/week @ 2024-08-09 1993/week @ 2024-08-16

7,566 每月下载量
3 个包 中使用

Apache-2.0 WITH LLVM-exception

240KB
1K SLoC

WASI HTTP

WebAssembly系统接口(WASI)的提议API。

当前阶段

wasi-http目前处于第3阶段

支持者

  • Piotr Sikora
  • Jiaxiao Zhou
  • Dan Chiarlone
  • David Justice
  • Luke Wagner

可移植性标准

WASI-http必须在至少两个完整的独立实现中展示,这些实现要在生产HTTP服务器环境中嵌入。

介绍

WASI-http提议定义了一组用于发送和接收HTTP请求和响应的接口。WASI-http还定义了一个世界wasi:http/proxy,它定义了wasm HTTP代理的最小执行环境。

目标

该提议旨在通过直接映射到抽象的HTTP语义来抽象HTTP版本和传输协议选择(例如HTTP/1.1、HTTP/2或HTTP/3),从而使主机可以(大部分)透明地使用这些之一。

wasi:http/proxy世界旨在通过需要最少额外的运行时支持,可由各种主机实现,包括Web服务工作者、正向和反向代理源服务器

wasi:http/proxy世界旨在通过将核心accept()循环移到主机,并允许主机根据到达的请求动态启动wasm实例,以支持灵活的自动扩展(“无服务器”)执行。

WASI-http世界旨在允许直接使用组件模型链接来实现HTTP中间件的链式操作。(完全实现这一目标将需要预览版3中才有的额外功能。)

非目标

WASI-http并不旨在定义一个更全面的云执行环境(关于这一点,请参阅wasi-cloud-core提案)。

API 演示

首先阅读proxy.wit的注释,然后是handler.wit,最后是types.wit,就可以理解这个提案了。

使用WIT

可以通过以下方式从wit目录生成绑定

wit-bindgen c wit/ --world proxy

并且可以通过以下方式验证和操作

wasm-tools component wit wit/ ...

wit/deps目录包含了依赖于此提案的几个WASI提案内容的实时快照。它会通过在根目录下运行wit-deps update来自动更新,该命令获取每个提案的main分支的实时内容。随着事物的稳定,wit/deps.toml将被更新以引用版本化发布。

参考文献及致谢

依赖项

~6–22MB
~348K SLoC