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.

https://github.com/xvxx/vial


I used this to make a finger proxy server:

https://git.alexwennerberg.com/hand/

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!


https://crabmail.flounder.online/


As well as a companion project, imap2mbox:

https://git.alexwennerberg.com/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 sr.ht over to crabmail:

https://lists.flounder.online/flounder/

https://lists.flounder.online/alex/


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

https://lists.flounder.online/smallweb/


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:

https://lists.flounder.online/flounder/threads/3567763891bb.html


All the best,

Alex



/gemlog/