I've just released version 0.2 of devd, a local webserver for developers. This release contains a number of small improvement, and a few new features.
- -x (--exclude) flag to exclude files from livereload.
- -P (--password) flag for quick HTTP Basic password protection.
- -q (--quiet) flag to suppress all output from devd.
- Humanize file sizes in console logs.
- Improve directory indexes - better formatting, they now also livereload.
- Devd's built-in livereload URLs are now less likely to clash with user URLs.
- Internal 404 pages are now included in logs, timing measurement, and filtering.
- Improved heuristics for livereload file change detection. We now handle things like transient files created by editors better.
- A Linux ARM build will now be distributed with each release.
Some thoughts on small tools
I love small, modest tools that do one thing well. I wrote devd partly out of nostalgia for thttpd, a tiny web daemon that used to be my rough-and-ready, just-serve-files-now webserver for many years. It was a single, small binary that I could cross-compile for all the platforms I used, and it did its humble job well. Back in the day, it was one of the first things I put on every new box, along with my shell configuration and ssh keys. When it started showing its age, I moved on to the usual combination of built-in interpreter daemons (e.g. "python -m SimpleHTTPServer") and more heavy-handed tools, but not without a touch of sadness. Looking back on it now, it's clear that the thttpd I remember is a somewhat rose-tinted version of the real thing: thttpd actually did both more and less than I really needed. Devd strives to be a tool in the same sprit, that matches more closely what I want in my EDC http daemon. If people think of it as a small, dependable and unobtrusive part of their daily toolset, I'll have done my job well.
This release includes a few new features for devd, and the next release will add a few more. Not long after that, I expect it to be more or less feature complete. It will continue to improve internally, and bugs will always be fixed, but it will never sprout the ability to run PHP or render less on the fly (both feature requests I've had since the first release). Instead, it will focus on doing the few things it does as well as it can: serve files, act as a reverse proxy tying development servers together, and live reload when files change.