Eskiueskiu v0.7.0
Caso de estudio

Un pipeline criptográfico real en Eskiu

El decodificador de QR de credencial del INE, un pipeline de AES-256 multironda + RSA-8192 con extracción de imagen QR, reimplementado en Eskiu y servido como una API HTTP, sobre un stack construido enteramente con la biblioteca estándar. 2.5× más rápido que el C de referencia, idéntico bit a bit a otras cinco implementaciones.

La carga de trabajo

La credencial de elector del INE de México lleva dos códigos QR que empacan 18 campos biográficos más la foto de la credencial detrás de un pipeline criptográfico de siete capas: múltiples rondas de AES-256-CBC con llaves derivadas en tiempo de ejecución, descifrado de bloques RSA-8192, una etapa base64 y un desempacador de texto de 6 bits. Decodificar una empieza desde una foto de la tarjeta: detectar y leer los dos payloads QR, luego correr todo el pipeline para recuperar los campos y reconstruir la foto. Es una mezcla compacta pero implacable de manejo de imagen, criptografía de verdad y manipulación de bits byte a byte: justo el tipo de código que normalmente le toca a C y a nadie más.

Por qué encajó Eskiu

Idéntico bit a bit en todo el stack

El decodificador existe en seis implementaciones, mantenidas en sincronía para que un cambio al algoritmo se detecte en todas: C puro y Python, WebAssembly (en el navegador), un AAR de Android, un XCFramework de iOS y la ruta de Eskiu. Las seis producen salida idéntica byte por byte desde la misma credencial. La implementación en Eskiu es un par completo de ese conjunto, no un port de juguete, y su pipeline cripto corre 2.5× más rápido que el C de referencia contra el que se midió.

El dogfooding mejoró el lenguaje

Mover el decodificador al compilador actual fue en sí mismo una prueba del lenguaje. El código cripto está lleno de patrones de adquirir-luego-liberar, así que defer / errdefer colapsaron unas quince llamadas manuales de limpieza, y ocho cascadas de limpieza en rutas de error, en una sola línea cada una, volviendo imposible toda una clase de fugas de buffer (verificado sin fugas bajo AddressSanitizer). Un build --safe agrega chequeos de límites para parsear imágenes no confiables.

Más revelador: ejercitar código real sacó a la luz dos mejoras concretas que entraron de vuelta al compilador en la v0.6.1. Rebanar un puntero crudo de heap (ptr[lo..hi]) crasheaba la generación de código; ahora construye un slice apropiado, así que los buffers de heap, no solo los arreglos fijos, se pueden rebanar. Y se agregó un escape hex \xNN a los literales de string y de carácter para datos byte-precisos. El decodificador necesitaba ambos; el lenguaje creció para cumplir.

Así que el mismo lenguaje que arranca un kernel ARM64 bare-metal, y mete un módulo ajustado en memoria dentro de un motor de renderizado C++ (ve el caso de estudio de ReactVision), también decodifica un formato criptográfico real a velocidad nativa y lo sirve por HTTP. Un solo lenguaje a lo largo del stack, usado donde conviene.