Space Engineers mod that allows scaling and translation of LCD blocks
Space Engineers mods are quite constrained in what APIs they have access to, so some features required a bit of fudging and/or ingenuity to implement. Animations, for example, were difficult as the UI options available didn’t allow for specifying a keyframe sequence.
Diagram/chart/graph generator
Give it a yaml or lua file and it will generate a chart for you. I created this project since I couldn’t find any existing commandline app for this and I wanted something I could integrate into my LaTeX workflow easily
Serialize/Deserialize lib based on lenses
Mostly a toy project to experiment with C++20’s concepts support, but it does work docs
Dotfiles deployment tool + template engine
Pretty basic rust tool I wrote the MVP of in 6 hours. I use it to make my dotfiles easier to deploy on new systems and across os’s. It also has a home-made handlebars like template engine that accounts for about half of the time spent on the MVP.
Tool to help you shelve your file paths
This is a tool that provides “bookmarking” of filesystem paths. You give it a long path and a short name to refer to it by and then you can later ask it to give you the long path from the short name.
Originally this project used SQLite but once I became more experienced I realised this was stupid so now it uses JSON.
Fingerprint authentication library for Linux. Contributed driver & sigfm
If you use Linux with a fingerprint scanner you almost certainly use this library. Implemented a driver for the goodix 5110 sensor (branch)
Rimworld mod that manages powerdraw
I added Biotech (new DLC) support to this mod (PR). Rimworld mods modify or replace existing functions at runtime by directly modifying the C# IL. This means that adding support for Biotech required analysis of the existing game code using a decompiler and discresion in picking what to patch.
Parser for LaTeX logs using megaparsec
I created this project to get a better understanding of megaparsec and so I could actually diagnose issues with my LaTeX documents
High level HTTP + WebSocket library
I implemented several parts of this library from 2021 to 2022. Contributions include TLS support (PR) and clang support (PR))
This library wraps boost.beast.
Tool to add source package above imports
This tool adds the name of the source package as a comment above each import (or group of imports). It also groups imports by source package.
It uses megaparsec for parsing and optparse-applicative for argument handling.
Neovim frontend
Contributed a couple improvements such as blend support.
Text editor, fork of vim
I fixed a bug with the UI RPC API PR
Syntactic sugar for Lua
This is a transpiler for a super-set of Lua with syntactic sugar. It includes a full Lua parser implemented with lpeg. It has both a tokeniser and code generator with an AST using tables.
Utilities for working with enums, aimed at sumtypes
This came about because I was working on a compiler in Rust for a DSL (you can read about some of that experience on my blog), and as part of that I needed to define a lot of sum types, like, easily a few dozen. I had a declarative macro but it was somewhat limited due to the constraints of declarative macros in Rust. So I wrote a more robust solution that uses attribute macros. docs