http_req_wasi 0.10.2

HTTP client for the WasmEdge network socket API. Derived from the http_req library.
# http_req_wasi

Simple and lightweight HTTP client for the low level [wasmedge_wasi_socket]( library. 
It is to be compiled into WebAssembly bytecode targets and runs in the [WasmEdge Runtime]( as a lightweight and secure alternative to natively compiled apps in Linux container.

> This project is forked and derived from the [http_req] project created by [jayjamesjay]

## Example

Basic GET request in HTTPS

use http_req::request;

fn main() {
    let mut writer = Vec::new(); //container for body of a response
    let res = request::get("", &mut writer).unwrap();

    println!("Status: {} {}", res.status_code(), res.reason());
    println!("Headers {}", res.headers());
    println!("{}", String::from_utf8_lossy(&writer));

## How to use:

http_req_wasi  = "0.10"

## Build and run

[Install WasmEdge]( and then install the HTTPS plugin as follows.

# Download and extract the plugin
tar -xzf WasmEdge-plugin-wasmedge_httpsreq-0.11.1-manylinux2014_x86_64.tar.gz

# Install the plugin if your wasmedge is installed in ~/.wasmedge
cp ~/.wasmedge/plugin/

# Install the plugin if your wasmedge is installed in /usr/local
cp /usr/local/lib/wasmedge/

Build the [GET HTTPS](examples/ example.

cargo wasi build --release --example get_https

Run the example.

wasmedge target/wasm32-wasi/release/examples/get_https.wasm

Status: 200 OK
Headers {
  Content-Length: 292
  Date: Tue, 04 Oct 2022 20:07:47 GMT
  Access-Control-Allow-Origin: *
  Access-Control-Allow-Credentials: true
  Server: gunicorn/19.9.0
  Content-Type: application/json
  Connection: close
  "args": {
    "msg": "WasmEdge"
  "headers": {
    "Host": "", 
    "Referer": "", 
    "X-Amzn-Trace-Id": "Root=1-633c9293-390dc4cc46f268412e39a208"
  "origin": "", 
  "url": ""