Reaching the Unix Philosophy's Logical Conclusion with WebAssembly
Hey there! This is the example code I wrote for my talk at GopherCon
EU. This consists of a few folders with code:
cmd: Executable commands for the demo.
cmd/aiyou: The WebAssembly runner. It connects to cmd/yuechu and
exposes network connections as a filesystem. It is intended to run
wasip1/echoclient.wasm.
cmd/yuechu: The echo server that takes lines of inputs from
network connections and feeds them to WebAssembly modules then sends
the output back to the client. It runs wasip1/promptreply.wasm and
wasip1/xesitemd.wasm.
wasip1: A folder full of small demo programs. Each is built with
makefile commands.
wasip1/echoclient.wasm: A small Rust program that tries to connect
to the echo server, prompts for a line of input, prints what it got
back, and then exits.
wasip1/promptreply.wasm: A small Rust program that reads input
from standard in and then writes it to standard out.
wasip1/xesitemd.wasm: My blog's markdown to
HTML parser. It reads xesite-flavored markdown over standard input
and returns HTML over standard output.
In order to build and run the code in this folder, you must be using
Nix and be inside a nix develop shell. You can build most files in
wasip1 by using make such as like this:
make echoreply.wasm promptreply.wasm
If you have any questions, please email
me or open an issue on this repo.