homepage/content/projects/_index.md

8.4 KiB

title
Projects

{{}} {{}}

I have been writing code for a rather long time now and have quite a few projects under my control, most projects here are active and I am returning to development on them since having finished up with university. Most of the things here (if not all) are written in D which is my programming language of choice. Some other projects will be returned to in terms of development whilst other are fully deprecated.

{{}}






{{}}

If you have any questions, find my details on the Contact page - enjoy!


Active projects

All the projects listed below are considered active in development and/or are still supported by me.

libpb

{{}} {{}}

PocketBase wrapper with serializer/deserializer support

jstruct

{{}} {{}}

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

dlog

{{}} {{}}

Simple and modular logging library with support for chained custom text transformers and custom loggers

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)).

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.

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.

eventy

{{}} {{}}

Event handling system for writing handlers and triggering them later.

birchwood

{{}} {{}}

A sane IRC framework for the D language.

Makes use of Eventy for event handling and libsnooze for the receive and send queue manager threads.

libsnooze

{{}} {{}}

A wait/notify mechanism for D

Guillotine

Executor framework with future-based task submission and pluggable thread execution engines

gitea-irc-bot

{{}} {{}}

A Gitea webhook-based IRC bot


Upcoming projects

These projects are either on hold or still being worked on and are yet to be released.

tristan

{{}} {{}}

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

  • Project homepage
  • Source code Source code will be available by the end of 2023, with a release expected by then.

Inactive projects

All the projects listed below are no longer worked on or maintained.

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.

DNET

{{}} {{}}

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

  • dnetd - A server for the DNET chat protocol
  • skippy - A text-based DNET chat client
  • Gustav - A GTK3+ graphical chat client for DNET

Project homepage

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
    • This provides the mail server
  2. skoenlapper
    • This is the text-based email client for butterfly

Bester

{{}} {{}}

A federated pluggable message-exchange protocol

Project homepage

{{}}

{{}}