Here I list a curated slice of my side-projects. The slice will change over time, based on what I find interesting that rewrite. It only includes my own projects, not things I merely contribute to. For a more complete (but not exhaustive) list, see links.
A collection of useful single-header libraries targetting ISO C. Of particular interest is the
ini.h library, the blog post on which has racked up 45k reads (at the time of writing).
Janet-Date is an ISO C99 datetime library for Janet. Through its implementation I found bugs in, for example, the MacOS libc. It’s also an example on how one could handle time, namely with time_t being the source of truth, updated immutably, with
struct tm only used for output.
Jurl is an HTTP client for Janet. It’s a libcurl wrapper, with the native bindings having the explicit goal of being as complete as possible. To the best of my knowledge, it is the most complete bindings for a dynamic language of this category.
The language level bindings are then implemented on top of that. I had the goal of making them as nice and complete (but only for HTTP, rather than everything curl can do) as I could. The result is the nicest HTTP client I’ve ever used, competing roughly with python’s requests (the “request” function is roughly equivalent to requests API, with the additional API layer on top of this being a lisp/F#-like pipeline).
In order to make the tokenizer useful, patok also comes with piecemeal, a fairly standard run-of-the-mill recursive descent parser built to consume patok output.