Projects

A selection of the things that I have worked on. Take a look at my github account for more.

  • Yap: Yet Another Parser library for Rust

    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.

    view source

  • Angu: A JavaScript library for building mini-languages

    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.

    view source

  • Weave: A CLI HTTP Router/file server

    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.

    view source

  • Seamless: A Rust library for building type safe RPC APIs

    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.

    view source

  • Highscore: A mobile-first app for tracking high scores

    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.

    view source

  • Web Assembly Fractal Generator

    A Web Assembly experiment to create a fast in-browser fractal generator in Rust and JavaScript using Web Workers and progressive rendering.

    view source

  • Vault-inject: Inject vault secrets into commands

    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.

    view source

  • Git-backup: A tool for backing up your git repositories

    A tool to backup all of your personal git repositories from cloud providers like GitHub, GitLab and Bitbucket.

    view source

  • FUSS: A functional-first compile-to-CSS language

    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.

    view source

  • Talklicker

    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.

    view source

  • Compression Machine

    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.

    view source

  • Fractal Explorer

    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.

    view source

  • Competitive Learning Simulator

    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.

    view source