sebweb

sebweb is a web server written in Haskell based on a library called warp. Warp wraps system calls, handles threading and provides basic functionality for parsing incoming requests and sending responses. sebweb builds on top of that and implements request handling, routing, auth, cookies and sessions, caching and logging.

Why Haskell for a web server? Back in my early days as a computer science student I took a functional programming course that used Haskell. This novel programming style and Haskell's arcane appeal led to a couple of toy projects. Among them is sebweb's predecessor, a simple web server built on top of the high-level framework Spock. After some time though, Spock went down the type level programming route too far for (my) comfort. At this point I also knew the HTTP protocol well enough to start re-implementing it in simpler terms. Much of this work was then repurposed to properly bundle a web server: sebweb.

Today, sebweb has retired and is succeeded by much simpler solutions: nginx for static websites and Node.js for anything beyond that. Through my professional projects I learned to appreciate these simple and reliable solutions and nowadays I gladly trade off novelty and control for these qualities.

Project Overview
Personal Project
Started in 2016
Retired
200+ hours
Technology
Haskell
Haskell Icon
Last Updated
2024-04-02