Begin implementation of wasi-http (#5929)
* Integrate experimental HTTP into wasmtime. * Reset Cargo.lock * Switch to bail!, plumb options partially. * Implement timeouts. * Remove generated files & wasm, add Makefile * Remove generated code textfile * Update crates/wasi-http/Cargo.toml Co-authored-by: Eduardo de Moura Rodrigues <16357187+eduardomourar@users.noreply.github.com> * Update crates/wasi-http/Cargo.toml Co-authored-by: Eduardo de Moura Rodrigues <16357187+eduardomourar@users.noreply.github.com> * Extract streams from request/response. * Fix read for len < buffer length. * Formatting. * types impl: swap todos for traps * streams_impl: idioms, and swap todos for traps * component impl: idioms, swap all unwraps for traps, swap all todos for traps * http impl: idiom * Remove an unnecessary mut. * Remove an unsupported function. * Switch to the tokio runtime for the HTTP request. * Add a rust example. * Update to latest wit definition * Remove example code. * wip: start writing a http test... * finish writing the outbound request example havent executed it yet * better debug output * wasi-http: some stubs required for rust rewrite of the example * add wasi_http tests to test-programs * CI: run the http tests * Fix some warnings. * bump new deps to latest releases (#3) * Add tests for wasi-http to test-programs (#2) * wip: start writing a http test... * finish writing the outbound request example havent executed it yet * better debug output * wasi-http: some stubs required for rust rewrite of the example * add wasi_http tests to test-programs * CI: run the http tests * bump new deps to latest releases h2 0.3.16 http 0.2.9 mio 0.8.6 openssl 0.10.48 openssl-sys 0.9.83 tokio 1.26.0 --------- Co-authored-by: Brendan Burns <bburns@microsoft.com> * Update crates/test-programs/tests/http_tests/runtime/wasi_http_tests.rs * Update crates/test-programs/tests/http_tests/runtime/wasi_http_tests.rs * Update crates/test-programs/tests/http_tests/runtime/wasi_http_tests.rs * wasi-http: fix cargo.toml file and publish script to work together (#4) unfortunately, the publish script doesn't use a proper toml parser (in order to not have any dependencies), so the whitespace has to be the trivial expected case. then, add wasi-http to the list of crates to publish. * Update crates/test-programs/build.rs * Switch to rustls * Cleanups. * Merge switch to rustls. * Formatting * Remove libssl install * Fix tests. * Rename wasi-http -> wasmtime-wasi-http * prtest:full Conditionalize TLS on riscv64gc. * prtest:full Fix formatting, also disable tls on s390x * prtest:full Add a path parameter to wit-bindgen, remove symlink. * prtest:full Fix tests for places where SSL isn't supported. * Update crates/wasi-http/Cargo.toml --------- Co-authored-by: Eduardo de Moura Rodrigues <16357187+eduardomourar@users.noreply.github.com> Co-authored-by: Pat Hickey <phickey@fastly.com> Co-authored-by: Pat Hickey <pat@moreproductive.org>
This commit is contained in:
@@ -33,6 +33,7 @@ wasmtime-wasi = { workspace = true, features = ["exit"] }
|
||||
wasmtime-wasi-crypto = { workspace = true, optional = true }
|
||||
wasmtime-wasi-nn = { workspace = true, optional = true }
|
||||
wasmtime-wasi-threads = { workspace = true, optional = true }
|
||||
wasmtime-wasi-http = { workspace = true, optional = true }
|
||||
clap = { workspace = true, features = ["color", "suggestions", "derive"] }
|
||||
anyhow = { workspace = true }
|
||||
target-lexicon = { workspace = true }
|
||||
@@ -165,6 +166,8 @@ cranelift-bforest = { path = "cranelift/bforest", version = "0.96.0" }
|
||||
cranelift-control = { path = "cranelift/control", version = "0.96.0" }
|
||||
cranelift = { path = "cranelift/umbrella", version = "0.96.0" }
|
||||
|
||||
wasmtime-wasi-http = { path = "crates/wasi-http", version = "=0.0.1" }
|
||||
|
||||
winch-codegen = { path = "winch/codegen", version = "=0.7.0" }
|
||||
winch-environ = { path = "winch/environ", version = "=0.7.0" }
|
||||
winch-filetests = { path = "winch/filetests" }
|
||||
@@ -213,6 +216,7 @@ default = [
|
||||
"vtune",
|
||||
"wasi-nn",
|
||||
"wasi-threads",
|
||||
"wasi-http",
|
||||
"pooling-allocator",
|
||||
]
|
||||
jitdump = ["wasmtime/jitdump"]
|
||||
@@ -220,6 +224,7 @@ vtune = ["wasmtime/vtune"]
|
||||
wasi-crypto = ["dep:wasmtime-wasi-crypto"]
|
||||
wasi-nn = ["dep:wasmtime-wasi-nn"]
|
||||
wasi-threads = ["dep:wasmtime-wasi-threads"]
|
||||
wasi-http = ["dep:wasmtime-wasi-http"]
|
||||
pooling-allocator = ["wasmtime/pooling-allocator", "wasmtime-cli-flags/pooling-allocator"]
|
||||
all-arch = ["wasmtime/all-arch"]
|
||||
posix-signals-on-macos = ["wasmtime/posix-signals-on-macos"]
|
||||
@@ -264,3 +269,4 @@ harness = false
|
||||
[[bench]]
|
||||
name = "wasi"
|
||||
harness = false
|
||||
|
||||
|
||||
Reference in New Issue
Block a user