Blog posts: Web

The web has been an area of interest for me from childhood, and it’s where I’ve focused a lot of my endeavours. Here are my writings on the topic.


Tween: a middleware library experiment

Web frameworks normally have the concept of middleware; we’ve tried developing fancy fully type-safe middleware in Rust before, but not very successfully. I finally got it to work. Tween is the experimental result.


Teepee design: the HTTP method

Now we come to the Method type. While there are a few improvements to be made, this is one of the things that probably can’t be significantly improved on over rust-http.

Teepee design: header representation

Header representation is a critical matter to Teepee’s design: it is uncompromisingly strongly typed, but there must be tradeoffs. After trying quite a few different schemes at length, I have settled upon quite a novel scheme which I believe to optimally balance all considerations.

Teepee design: Status-Line, take two

My first look at the Status-Line kept largely to what rust-http had done; some great discussion came up and a conceptual flaw in my models was revealed. Now I present some better options.

Teepee design: a careful look at the HTTP/1.1 Status-Line

rust-http has a nice Status enum which provides good, strong typing of statuses, but alas, it is not without its issues. Let’s take a look at the Status-Line as it is defined.

Introducing Teepee: the next step for rust-http

rust-http was but an experiment, an essay in the craft. Here, at last, is the real thing: the Teepee project, a properly engineered HTTP toolkit.


The tech behind my Rust docs presentation

For the curious, I present the technology that went into the presentation slides, in all its glory: a tale of SVG, web fonts and PubNub integration, a moderately ugly but entirely sufficient hack.

GitHub: a case study in link maintenance and 404 pages

GitHub is remarkably successful, but their link maintenance still leaves a lot to be desired; here’s a case study of how they could improve it, for you to learn from.