Recap

Recently, I made a proof-of-concept edge proxy called Superposition. It was very unpolished, and served only as a proof-of-concept.

Infrared

In my last post on this topic, I mentioned I was working on a new proxy called Infrared. I am proud to announce that I have officially released it, and you can visit it at infrared.bomberfish.ca. This post will explain the challenges behind creating a proxy like this.

TompHTTP

Since my last proxy was so unpolished, I made sure Infrared conformed to a popular proxy standard. Thankfully, the TompHTTP standard proved popular enough.

bare-server-worker

It turned out that work was already done for porting the TompHTTP bare-server to the Workers runtime, called bare-server-worker. However, this implementation was not maintained, so it only supported the older V2 standard.

Adding V3

Adding support for the newer V3 standard was trivial, as the only major change was merging the old URL segment headers into a new header, named x-bare-url.

Frontend

I opted to use Ultraviolet as my bare client, as it was well-maintained and had a large userbase. For the webpage, I used a heavily-modified version of Ultraviolet-Static, as it was written in vanilla HTML.

Hosting

For hosting the website, I decided to use Cloudflare Pages, as hosting both backend and frontend on Cloudflare’s edge network would reduce the chance of the frontend being blocked via IP address (versus GitHub Pages, which was my host of choice)

What next?

I plan on adding search suggestions and overall improving user experience.

Enjoyed this article? Subscribe to my RSS feed for more like it!
<
Previous Post
Notes on installing alternative OSes on Chromebooks
>
Next Post
iOS Sideloading: The Rundown