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 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.
A new chat binary protocol aiming to replace IRC with modern day features.
a federated pluggable message-exchange protocol
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)).
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.
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
.
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.
A TUN/TAP OOP-based adapter for use in D-based applications
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.
Event-loop system for signal handling systems.
Currently being re-written.
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.
A new programming language for systems programming with a focus on control of everything, minimalism and supporting OOP.
Simple and modular logging library
PocketBase wrapper with serializer/deserializer support
Library that easily lets you serialize a struct in D to JSON and vice-versa