Posted on :: 617 Words

This is a all of my projects I have worked on and remembered to add to the list here.

Networking

DNS Server - This was my attempt working through a DNS Server challenge on Code crafters. It implements a DNS Packet Parser and a rudimentary server. Source Code

Multicaster - My homelab spans many VLANs each created with a specific purpose in mind. There are tools like IGMP Proxies and Avahi Daemon but they have few knobs to adjust and it's like opening a firehose of MDNS traffic from 1 VLAN into another. I wanted some thing that could be finetuned a lot more and decided to build this project. This is a MDNS Repeater intended to be used to make service discovery work across across L2 boundaries. Currently, It only supports MDNS but I eventually want to add support for DLNA / SSDP as well! Source Code

RDNS IPv6 - In most networks, It is easy to get the hostname for an IPv4 client by looking at the DHCPv4 Lease but it's not so easy to do that with IPv6 because the network might be using SLAAC(since DHCPv6 is not well supported). In such cases, It's difficult to get names of IPv6 clients. This is why I built a tool to solve this problem. It is supposed to run on the router. It looks at IPv6 neighbour tables and constructs a hosts file containing a map of IPv6 clients and their hostnames. Source Code

Geofw - This project uses the IP Geolocation database from MaxMind and eBPF to filter incoming traffic by the source country or the source ASN. Source Code

Programming Languages

Monkey Language Interpreter - A Monkey language Interpreter written in Rust. Source Code

Databases

SQLite Reader - This was my attempt working through the SQLite challenge on Code Crafters. I implemented a SQLite parser that could search records with / without an index and learned a ton about SQLite format in detail. Source Code

Computer Graphics

I have always loved Computer Graphics but never could spend more time on it.

I have implemented the 3 ray tracers from Peter Shirley's Books.

Raytracing in a weekend - Source Code

Raytracing the next Week - Source Code

Raytracing the rest of your life - Source Code

Conway's Game of Life - This is an implementation of Conway's Game of Life in OpenGL + Golang. Source Code

Eventually, I hope to do more in this space.

Miscellaneous

Perceptual hash - A library to find the percent similarity between two images. It create a Difference Hash of both images and finds the hamming distance between those hashes to calculate the similarity percentage. Source Code

Onedrive Downloader - My Sister's course was distributed over onedrive which has terrible performance on my ISP. I wrote this tool to download shared onedrive directories all at once, Has multi threaded downloads and offers a hassle free way to download all the files Source Code

SHA256 - One weekend, I decide to read more about the ubiquitious SHA256 hashing algorithm that is used every where and decided to implement it from scratch. Source Code

Work in progress Experiments

Neptune - An Operating system written in Rust. The long term goals are to have it boot into 32 bit mode, develop a simple game engine for it and port DOOM to it. Source Code