A BitTorrent client
Bencode, trackers and the peer-to-peer protocol. Download a real file by talking to real peers.
Go · Python · Java
Del byte crudo a una respuesta 200. Parsea peticiones, gestiona conexiones y sirve tráfico concurrente.
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.
Usas frameworks web todos los días, pero debajo de todos ellos hay lo mismo: un socket TCP escuchando y un protocolo de texto que cabe en una hoja. Este reto quita el framework de en medio.
Empiezas abriendo un socket a mano y terminas con un servidor que parsea peticiones reales, sirve ficheros, entiende cabeceras y atiende a varios clientes a la vez sin bloquearse. Lo probarás con curl y con tu navegador.
10 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
Abre un socket, acepta una conexión y devuelve un 200 escrito a mano.
Línea de petición, cabeceras, cuerpo y respuestas de error bien formadas.
Enrutado por path, ficheros estáticos, Content-Type y manejo de POST.
Concurrencia, keep-alive y timeouts para no caerse con varios clientes.
Bencode, trackers and the peer-to-peer protocol. Download a real file by talking to real peers.
Go · Python · Java
Build and parse UDP packets bit by bit. Resolve names by walking the hierarchy from the root servers.
Go · Rust · Python
Build a Model Context Protocol server from scratch with JSON-RPC, tools, and resources.
TypeScript · Python · Go