@deislabs/wasi-experimental-http
TypeScript icon, indicating that this package has built-in type declarations

0.10.0 • Public • Published

@deislabs/wasi-experimental-http

npm version

Experimental HTTP client library for AssemblyScript.

Using this library

First, install the package to your project:

$ npm install @deislabs/wasi-experimental-http --save

Then, import the package and create a request using the RequestBuilder:

// @ts-ignore
import { Console } from "as-wasi";
import {
  Method,
  RequestBuilder,
  Response,
} from "@deislabs/wasi-experimental-http";

export function post(): void {
  let body = String.UTF8.encode("testing the body");
  let res = new RequestBuilder("https://postman-echo.com/post")
    .header("Content-Type", "text/plain")
    .method(Method.POST)
    .body(body)
    .send();

  print(res);
}

function print(res: Response): void {
  Console.log(res.status.toString());
  Console.log(res.getHeader("Content-Type"));
  let result = String.UTF8.decode(res.bodyReadAll().buffer);
  Console.log(result);
}

After building a WebAssembly module using the AssemblyScript compiler, the module can be executed in a Wasmtime runtime that has the experimental HTTP functionality enabled (the crate to configure it can be found in this repo):

{
    "content-length": "374",
    "connection": "keep-alive",
    "set-cookie": "sails.Path=/; HttpOnly",
    "vary": "Accept-Encoding",
    "content-type": "application/json; charset=utf-8",
    "date": "Fri, 26 Feb 2021 18:31:03 GMT",
    "etag": "W/\"176-Ky4OTmr3Xbcl3yNah8w2XIQapGU\"",
}
{"args":{},"data":"Testing with a request body. Does this actually work?","files":{},"form":{},"headers":{"x-forwarded-proto":"https","x-forwarded-port":"443","host":"postman-echo.com","x-amzn-trace-id":"Root=1-60393e67-02d1c8033bcf4f1e74a4523e","content-length":"53","content-type":"text/plain","abc":"def","accept":"*/*"},"json":null,"url":"https://postman-echo.com/post"}
"200 OK"

Readme

Keywords

none

Package Sidebar

Install

npm i @deislabs/wasi-experimental-http

Weekly Downloads

0

Version

0.10.0

License

MIT

Unpacked Size

54.2 kB

Total Files

6

Last publish

Collaborators

  • squillace
  • radu-matei
  • itowlson
  • technosophos