Projects

I have been writing a lot of things as of late. Most of the projects here are still active projects, some I shall return to very soon. If I truly have an abandoned project then it will be listed here but as for now everything here is an active project of mine.


Butterfly

Butterfly is a full email system that uses JSON-based messaging embedded in bformat. It provides a single server that acts as both mail delivery and mailbox management system (analog to providing SMTP and POP/IMAP in one single service). It supports client-to-server connectivity along with server-to-server connectivity for inter-server mail delivery.

  1. butterflyd homepage
  2. skoenlapper

DNET

A new chat binary protocol aiming to replace IRC with modern day features.

Project homepage


Bester

a federated pluggable message-exchange protocol

Project homepage


tristanable

Tag-based asynchronous messaging framework for D. This allows you to write software that awaits on messages that have a certain tag sent with them.

This is heavily used in my chat applications because of the need of a state machine in an otherwise non-state-machine-like socket stream where a reply for one thing can come in before another regardless of the order things were sent in (or in the case of messages sent without a prior request (i.e. notifications)).

Project homepage


bformat

Simple message format that uses a 4-byte header for length. Used in many of my D network programs whereby I need a simple container format to hold arbitrary data, perhaps binary data, JSON etc.

Project homepage


BonoboNET

An IRC network for hackers, programmers etc. Running on 3 servers currently, 1 in Lebanon, 1 in the UK and 2 in South Africa using unrealircd, provides atheme services for features such as NickServ, ChanServ and HostServ.

Project homepage


CRXN

A community-run IPv6 network similiar to dn42 which runs in the fd00::/8 space. We use bird for routing and an assortment of routing protocols such as babel and ospfv3. We have IRC servers on the network, game servers, a DNS root nameserver, many web services and more things! The network spans South Africa, United Kingdom, Germany, Lebanon and Russia.

Project homepage


libtun

A TUN/TAP OOP-based adapter for use in D-based applications


gogga

Pretty-printer for debug messages with VT100 colouring. Used in many of my projects to make debug messages much more readbale and easier to process by fellow humans.

GitHub


eventy

Event-loop system for signal handling systems.

Currently being re-written.


tasky

Framework for writing programs that require callbacks to run from certain types of messages sent over a socket. Uses tristanable and eventy in the backend.

Currently being re-written.


tristan

A new programming language for systems programming with a focus on control of everything, minimalism and supporting OOP.


dlog

Simple and modular logging library


libpb

PocketBase wrapper with serializer/deserializer support


jstruct

Library that easily lets you serialize a struct in D to JSON and vice-versa