Wave

I went and created a tiny HTTP-fetching Clojure program called wave (see, it’s like a curl…) that fetches URLs given on the command line and dumps the results to the console. It can do HTTP/1.1, HTTP/2, and HTTP/3. It works interpreted and as an AOT compiled binary.

It uses tools.cli for command line parsing, which took a little bit of porting to get it to run on cljrs. It also helped me find and fix a heap of bugs in cljrs—everything from wrong command line argument handling to wrong code generation.

No code survives contact with a user. like pausing to try out some software I’m working on, to run it or break it and expose the rough edges.