Build Your Own BitTorrent Client

BitTorrent is a peer-to-peer file sharing protocol. Building a client teaches you about distributed systems, networking protocols, and file handling. ...

Programming Projects

Build Your Own Distributed System (Message Broker)

Build your own distributed message broker inspired by systems like Apache Kafka. This project covers distributed consensus, log-structured storage, message partitioning, consumer groups, and fault tolerance. ...

Programming Projects

Build Your Own DNS Forwarder

A DNS Forwarder is a nameserver that is used to resolve DNS queries locally instead of directly using the authoritative nameserver chain. Often they sit on the edge of a local area network and provide DNS resolution to the computers on the local network, reducing external traffic and speeding up external access by serving the answer from a local cache. ...

Programming Projects

Build Your Own DNS Resolver

Build your own DNS Resolver. ...

Programming Projects

Build Your Own Echo Server

Build your own Echo server. Implement a UDP or TCP based Echo server that echoes back to the client whatever is sent to it.. ...

Programming Projects

Build Your Own HTTP Forward Proxy Server

Many organisations used forward proxies to block large parts of the Internet. They can also be used to obfuscate the identify of users where multiple users all connect through the same proxy. ...

Programming Projects

Build Your Own HTTP(S) Load Tester

Build your a HTTP(S) Load Tester that can be used to simulate a load on a website or HTTP(S) based API. ...

Programming Projects

Build Your Own Memcached

Build your own Memcached server. Implement the TCP based Memcached protocol and build a Memcached server. ...

Programming Projects

Build Your Own NATS Message Broker

Build your own NATS Message Broker. Implement the TCP based NATS protocol and build a NATS Message Broker. ...

Programming Projects

Build Your Own Network Modelling Tool

Build a network modelling tool that can load in a network description and some traffic data, then model the traffic flowing over the network to determine the utilisation of each link within the network. ...

Programming Projects