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 lector de SQLite desde cero. Abre un archivo real, recorre sus B-trees y ejecuta consultas SELECT al decodificar el formato binario documentado.
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.
SQLite es probablemente la pieza de software más desplegada del mundo y su formato de fichero está documentado hasta el último byte. Es el objetivo perfecto para aprender a leer estructuras de datos en disco.
Abrirás un .db real —no uno de juguete— y lo recorrerás tú: cabecera, páginas, B-trees, registros. Terminarás ejecutando consultas SELECT con WHERE sobre tablas de verdad, usando índices para no escanearlo todo.
10 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.
Cabecera, tamaño de página, esquema y listado de tablas.
Recorrido del B-tree, varints y decodificación de registros.
Parser de SELECT, filtros WHERE y proyección de columnas.
B-trees de índice y consultas que evitan el escaneo completo.
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.
Go · Rust · Python
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