Build your own BitTorrent client
Build a BitTorrent client from scratch. Decode bencode, contact trackers and download a real file through the peer-to-peer protocol.
Go · Python · Java
Build an MCP server from scratch. Implement Model Context Protocol with JSON-RPC, tools and resources to connect AI clients to your programs.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
MCP lets applications and agents discover capabilities through a common protocol. In this project you will implement the server rather than integrate an SDK.
You will process one JSON message per stdin line and emit compact JSON responses on stdout. You will progress from the handshake to tools, resources, and reproducible protocol errors.
5 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.
Establish NDJSON transport, JSON-RPC, and the initial MCP negotiation.
Publish tools and resources a client can discover and use.
Complete the server with validation, notifications, and standard errors.
Build a BitTorrent client from scratch. Decode bencode, contact trackers and download a real file through the peer-to-peer protocol.
Go · Python · Java
Build a DNS resolver from scratch. Encode and parse UDP packets, then resolve domain names by walking the hierarchy from root servers.
Go · Rust · Python
Build an HTTP server from scratch. Parse requests from socket bytes, manage connections and serve concurrent traffic with real HTTP responses.
Go · Python · C · Rust