A selection of the things that I have worked on. Take a look at my github account for more.
Yap is a small, well documented, dependency free library to help you parse strings and slices by extending the Iterator trait with a bunch of parser-combinator style methods. It tries to keep out of the way, and gives you everything you need to return detailed errors at every step.
A small, zero-dependency library that can be used to build and evaluate mini-languages in the browser or in NodeJS. You have complete control over every operation performed, and this library takes care of the nitty gritty of the parsing and such.
A small CLI router that can merge several HTTP and file endpoints behind a single host/port under different paths. Built to enable quick hacking together of client files and APIs during development.
Seamless is an opionated library for creating type safe RPC-style JSON API's. Detailed type information is constructed for all API endpoints with a focus on generating TypeScript bindings for them.
A small, self contained mobile-first app for helping to track high scores. It can be deployed as a single binary for easy self-hosting.
A Web Assembly experiment to create a fast in-browser fractal generator in Rust and JavaScript using Web Workers and progressive rendering.
A utility for injecting secrets from Vault into environment variables, and then running the provided command with access to those environment variables. Useful for making quick-access aliases to commonly used commands.
A tool to backup all of your personal git repositories from cloud providers like GitHub, GitLab and Bitbucket.
FUSS is a CSS preprocessor built using Rust to be a simple yet powerful alternative to SASS. One of my first proper Rust and language building projects.
A small SPA built using Elm and Haskell for organising event days. Users can add projects or talks that they are interested in giving to a list, and then admins can create and describe days and drag things from the list in.
Developed as a bit of fun as a result of playing with various compression algorithms. Compresses and decompresses files using a combination of algorithms (Sequitur, Huffman Coding, Burrows-Wheeler transform, Move-to-front transform) each implemented in Javascript.
Create and explore fractals from within your web browser. Allows full customization of the colours and rendering quality and downloading of fractal images to your computer. Can be configured to use multiple threads to speed up performance, and fractal parameters can be tweaked to explore novel fractals.
Based on algorithms I worked with and built on during my PhD, This is a two-dimensional javascript based simulator and train one of several algorithms (K-Means, Self Organizing Maps, Neural Gas, Growing Neural Gas and Grow When Required) on user generated shape based inputs. Shapes can be added, moved, removed and deleted in realtime and the effects on training observed.