Skip to content
Paul Hunt

Projects

Things I've built for the fun of it

Nobody asked for any of these. They exist because I wanted to learn something, scratch an itch, or see whether an idea would actually work. Some are finished, some are live, and some are cheerfully still in progress.

Systems and tools

The serious-ish ones

Phookit application framework

in development

A high-performance C++ framework built around dynamically loaded plugins. It supplies the parts every application needs and nobody enjoys writing again: main(), the lifecycle, plugin loading, events, threading, networking, logging, configuration and metrics.

An application becomes a handful of plugins plus a config file that says how they connect. It is the foundation for several of the other projects on this page.

  • C++
  • CMake
  • Plugins
  • Async events
  • Networking

CoreCairn

working prototype

A 4G/5G network monitor, and what happens when you spend years in telecoms monitoring and then get a free hand. Its job is to show why mobile networks fail: it discovers the network topology by itself, spots faults, raises alerts and suggests where an engineer should start looking.

It comes with the CoreCairn Simulator, which invents a fictional mobile network and then breaks it on a schedule. That is far more fun than it sounds. So far it has only been tested against the simulator, not a live operator network.

  • C++
  • Phookit
  • 4G / 5G
  • Root-cause analysis
  • Simulator
  • Dashboard

srvadmin

in daily use

A self-hosted web tool for looking after a small fleet of Linux servers and the domains that point at them. One backend, one database, and a lightweight agent on each server.

It tracks domains, sets up web servers, DNS, a WireGuard VPN, Docker hosts and game servers, manages firewalls without ever locking you out of SSH, and gathers the logs in one place. It also deployed the website you are reading.

  • C++23
  • Drogon
  • React
  • PostgreSQL
  • nftables
  • WireGuard

Phookit website framework

in daily use

A small Django-based framework that handles the boring but important parts of a website: accounts, blogs, galleries, comments, reactions, cookie consent and privacy pages, light and dark themes.

One command installs a site on a server, complete with web server configuration and TLS certificate. Every website on this page runs on it, including this one.

  • Python
  • Django
  • Static generator
  • nginx
  • Modern CSS

A game engine on the framework

experiment

The open-source Irrlicht 3D engine, hosted by my application framework. The framework supplies the lifecycle, events and logging; the engine supplies rendering, scenes and input; a game is simply a plugin that asks for the engine.

Mostly an excuse to find out whether the framework could cope with a frame loop. It can.

  • C++
  • Irrlicht
  • 3D graphics
  • Plugins

cs2-server

working

One installer and one management command for running Counter-Strike 2 dedicated servers on Debian, either directly or in containers, with a set of ready-made game modes.

Because setting up a game server should take one line, not one evening.

  • Bash
  • systemd
  • Docker
  • Debian

TLS load tester and packet tools

tinkering

A C++17 utility that opens a great many TLS connections at once and measures how the other end copes, and a plugin-based framework for reading packet captures and turning telecoms protocols into events.

Along the way: experiments with SIMD parsing, multithreaded packet processing and running AI models locally.

  • C++17
  • Boost.Asio
  • OpenSSL
  • PCAP
  • SIMD

On the web

Websites

All built with my own framework and published with my own server tool, because apparently I like doing things the long way round.

Curious about any of these?

I'm always happy to talk shop, swap ideas or explain why I thought writing my own framework was a sensible use of a weekend.