Table of Contents
- Networking
- Programming Languages
- Databases
- Computer Graphics
- Websites
- Bots
- Games
- Microservices and APIs
- Miscellaneous
- Work in progress Experiments
This is a (incomplete)collection of projects that I've worked on until now.
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
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.
Websites
Wikipedia Viewer - It is a Wikipedia wiki Viewer that I built when working on freecodecamp.com's Front end Coding Challenges. Demo and Source Code
Random Quote Machine[INACTIVE] - This application shows Random Quotes from different categories. I built this when working on freecodecamp.com's Front end Coding Challenges. Demo and Source Code
Bots
Burnbit[INACTIVE] - This is a Telegram bot that converts Direct Download Links to Torrents. It takes a valid HTTP url from user, Downloads the file and creates a .torrent file that can be used with a torrent client. It is not live anymore and you can see the code on Github. Source Code
Imgur Bot[INACTIVE] - This is a Telegram bot. You can login to your imgur account and then this bot will upload any image you send to it to any album of your choice. Demo and Source Code
Cyanide & Happiness[INACTIVE] - This is a Telegram bot. You can subscribe to receive the daily comics or you can send it a message with text "random" to receive a random comic. Demo and Source Code
Games
Breakout - It is a HTML5 Game. Your objective is to break all the bricks by hitting them with the striker. Demo and Source Code
Microservices and APIs
URL Shortner[INACTIVE] - A URL Shortner Microservice that creates a short base62 encoded id for every url. It is written in Golang and uses SQLite to store urls. Demo and Source Code
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
The INACTIVE
tag is for projects that used to work but not anymore either because I took them down and left the codebase on Github or the services that they were built around have changed over time or I have not kept them up to date.