Readme

A Go http handler running in Val Town:

The Go source is here. Mandelbrot rendering code taken from here.

I used maxm/compileAndUploadTinygoWasm to compile the code and create the val.

$ git clone git@github.com:maxmcd/go-town.git
$ cd go-town/val-town-tinygo-http-example
$ deno run --allow-net --allow-run --allow-read "https://esm.town/v/maxm/compileAndUploadTinygoWasm?v=58"
Running tinygo build -o main.wasm -target=wasi .
Compliation complete
Running wasm-strip main.wasm

Copy the following into a val town HTTP val:

import { wasmHandler } from "https://esm.town/v/maxm/tinygoHttp";
const resp = await fetch("https://maxm-wasmblobhost.web.val.run/jpxqvyy5tphiwehzklmioklpkpz4gpzs.wasm");
const handler = await wasmHandler(new Uint8Array(await resp.arrayBuffer()));
export default async function(req: Request): Promise<Response> {
  return handler(req);
}
1
2
3
4
import { wasmHandler } from "https://esm.town/v/maxm/tinygoHttp";
const resp = await fetch("https://maxm-wasmblobhost.web.val.run/ihml3eg6qee7q2navnnpjqysogqvzdy7.wasm");
export const handler = await wasmHandler(new Uint8Array(await resp.arrayBuffer()));
Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
maxm-tinygohttpexample.web.val.run
v29
May 29, 2024