Construye tu propia base de datos clave-valor
Construye una base de datos clave-valor desde cero. Implementa un motor con WAL, índices y compactación para entender cómo persisten tus datos.
Go · Rust
Construye un servidor compatible con Redis desde cero. Implementa RESP, un bucle de eventos y expiración de claves, y conéctate con redis-cli.
Constrúyelo en tu lenguaje
El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.
Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.
Redis es rápido porque es simple: un proceso, estructuras en memoria y un protocolo tan sencillo que se puede leer a ojo. Es el servidor perfecto para reimplementar.
Vas a hablar RESP, el protocolo de Redis, y a construir un servidor al que el redis-cli oficial se conecta sin notar la diferencia. Empezarás con PING y terminarás con expiración de claves, transacciones y persistencia.
10 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.
Acepta conexiones, parsea el protocolo y responde a PING y ECHO.
SET, GET, DEL, tipos de datos y errores compatibles.
TTL, expiración perezosa y activa, y comandos sobre listas.
Bucle de eventos con muchos clientes, MULTI/EXEC y volcado a disco.
Construye una base de datos clave-valor desde cero. Implementa un motor con WAL, índices y compactación para entender cómo persisten tus datos.
Go · Rust
Construye un lector de SQLite desde cero. Abre un archivo real, recorre sus B-trees y ejecuta consultas SELECT al decodificar el formato binario documentado.
Go · Python · Java
Construye un buscador vectorial desde cero. Crea un índice con búsqueda exacta, filtros y un grafo HNSW simplificado para búsqueda aproximada.
TypeScript · Python · Go