Saltar al contenido
Volver al catálogo
Proyecto sqlite-readerBases de datosAvanzadoPróximamente

Construye tu propio lector de SQLite

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.

Idioma del temario

Las guías de las etapas se leen en este idioma. Solo aparecen los idiomas en los que este proyecto ya está traducido completo; el idioma de la interfaz no cambia.

De qué trata 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.

Hoja de ruta

10 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.

  1. Fase 13 etapas

    Abrir el fichero

    Cabecera, tamaño de página, esquema y listado de tablas.

  2. Fase 23 etapas

    Leer filas

    Recorrido del B-tree, varints y decodificación de registros.

  3. Fase 32 etapas

    Consultar

    Parser de SELECT, filtros WHERE y proyección de columnas.

  4. Fase 42 etapas

    Usar índices

    B-trees de índice y consultas que evitan el escaneo completo.

Antes de empezar

Un lector de bases de datos SQLite: parseo de la cabecera y del esquema, recorrido de páginas y de B-trees, decodificación del formato de registro con enteros de longitud variable, un parser de SQL para SELECT con WHERE, y uso de índices cuando existen.

  • key-value-db
    Próximamente

    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.

    Avanzado14 etapas~22 hBases de datos
    WALíndicescompactación+1

    Go · Rust

  • redis
    Próximamente

    Construye tu propio Redis

    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.

    Intermedio10 etapas~14 hBases de datos
    RESPTCPeventos+1

    Go · Rust · Python

  • vector-search-engine
    Próximamente

    Construye tu propio buscador vectorial

    Construye un buscador vectorial desde cero. Crea un índice con búsqueda exacta, filtros y un grafo HNSW simplificado para búsqueda aproximada.

    Avanzado5 etapas~18 hBases de datos
    vectoresbúsqueda aproximadaHNSW+1

    TypeScript · Python · Go