These are my top spare-time (software) projects. I don’t have much time to dedicate to my projects, so I use the power-of-two rule. My favorite languages are C, Typescript, and PHP.
Warudo
A lightweight HTTP web server written in C17 from scratch with no run-time dependencies. https://github.com/zaerl/warudo
Status: alpha-1
fork()based HTTP server- SQLite database backend
- HTTP header Huffman parser
multipart/form-dataparser- CLI tool for inserting data
- Vue client for showing JSON data
- PHP Apache logs parser
Mojibake
C99 low-level Unicode library coder/decoder/normalizer. https://github.com/zaerl/mojibake
Status: alpha-2
- UTF-8 strings unicode data query, coder, decoder
- NFD, NFKD normalizer thats passes 200k unit tests of
NormalizationTest.txt - SQLite backend size-optimized
UCD/UnicodeData.txtparser written in typescriptUCD/Blocks.txtparser written in typescriptUCD/CompositionExclusions.txtparser written in typescript- .h/.c files generator
Attractor
A single-function unit test framework written in C11. https://github.com/zaerl/attractor
_GenericC macroATT_ASSERT(var, expected, "desc")- Support 17 different C types
- CLI output with two levels of verbosity
Status: released
@zaerl/lua
Transform Lua tables to Javascript associative arrays. https://github.com/zaerl/js-to-lua
- Lua tables parser written in Typescript
- Javascript associative arrays generator
Status: released
PHP always operator
A new PHP core operator called always. A construct that checks if a value is true, if it is not, it will spawn an exception. https://zaerl.com/2024/05/13/add-a-language-construct-to-php-part-1/
Status: prototype
- New
alwaysoperator of typealways $foo;
Tap and catch
iOS LÖVE game written in Lua. https://zaerl.com/2024/08/26/i-created-a-game-for-my-son-part-1/
Status: prototype
cw.pl
A Perl tool that counts how many words are repeated in a collection of files. Used for my book Natura macchina (italian page) and my collection of science fiction stories Epilambanein (italian page).
Status: released
bbPress plugins
I wrote a total of 12 bbPress plugins: Github list
Status: released
Other minor projects
- https://github.com/zaerl/where-is-steam
- https://github.com/zaerl/git-subl open all files not staged for commit in Sublime Text 3
Status: all released