Monthly Update: December 2021

Let's talk about programming. This month, I focused a lot on Rust, a programming language that I have a renewed interest in. I encountered a web framework that I found to be exceptionally lean and well-designed, and it reminded me that one can write Rust without getting caught up in endless layers of abstraction and dependencies.

I used this to make a finger proxy server:

Live demo!

I started Advent of Code in Rust, but I lost interest, and decided to focus on my side projects instead. I became very excited about Crabmail, a mailing list archive that I had abandoned for a while, and finished a working demo!

As well as a companion project, imap2mbox:

Both of these projects are super early in development, but I'm happy with how they turned out. I finally see that there is a way to write Rust a way that I like, basically by rewriting any dependency that I'm not happy with. For example, in crabmail, rather than add dependencies, I wrote my own:

argument parser

config parser

mbox reader

time functions

xml escaper

In most of the Rust ecosystem, each of these tools would be a large dependency, which may have dozens or more sub-dependencies. I replaced them with <100 lines of Rust code each. Once I am a bit more experienced with Rust, I may do a writeup about this. I plan on continuing to work in Rust, and as I do, create more and more of these little functions for personal use. I feel really happy with the dependency tree of crabmail: compile time is only 22 seconds on my laptop including all dependencies. The code quality isn't great, but I feel like I understand both what makes Rust great, as well as how to make it work for me effectively. I plan on doing a lot more Rust programming in the future. I may revisit mygit, but I felt tremendous stress from that project for some reason (which triggered terrible headaches) that led me to spend a few months away from open source. I may be able to get back into it, slowly, or try another project in Rust.

I moved my mailing lists from over to crabmail:

And I started a new mailing list, the smallweb mailing list.

These mailing lists are an experiment, but I am excited about the potential for a new generation of mailing lists. Feel free to give them a shot, if it works out, I plan on investing more into this aspect of the flounder / small web community. The software is still very new.

Read my Christmas/holiday message to the Flounder community:

All the best,