Igropyr: servidor web en Chez Scheme con supervisores al estilo Erlang

Fuentes: Igropyr: a self-healing web server in Chez Scheme

Igropyr es un servidor web de código abierto escrito íntegramente en Chez Scheme —sin shims en C— que combina el modelo de actores de Erlang con el bucle de eventos de libuv. Su propuesta central es que los manejadores de peticiones no se defienden: cuando fallan, el proceso muere y un supervisor lo reinicia en un worker nuevo; si un bucle queda bloqueado, un ticker lo interrumpe y el resto del sistema sigue sirviendo. La compilación de programa entero funde el framework y la aplicación en un único binario optimizado, y la FFI de Chez accede directamente a libuv, zlib y a la autenticación criptográfica de MySQL.

El proyecto introduce varias funcionalidades orientadas a producción: hot-swap de manejadores y rutas en caliente sobre un servidor en marcha, manteniendo conexiones abiertas y el pool de workers; apagado elegante (http-shutdown!) que drena las peticiones en curso; escucha multi-proceso con SO_REUSEPORT en Linux; y un hook on-failure que responde con fallos estructurados en JSON en la misma conexión keep-alive, de modo que el cliente puede reintentar con parámetros corregidos. Para diálogos de varios pasos —wizards, reservas, transferencias— ofrece conversaciones como procesos verdes: el estado vive en los enlaces locales del proceso, incluida una transacción de base de datos abierta, y la muerte por cualquier causa garantiza rollback.

Igropyr incluye además cliente y servidor HTTP/WebSocket no bloqueantes, PubSub por tópicos, gen-server, registro de procesos, drivers para Redis y MySQL, helpers para SSE, RPC con s-expresiones y un endpoint /metrics. Se distribuye bajo licencia MIT. Sus fuentes de inspiración declaradas son Node.js y Express —núcleo ligero con framework opcional— y, sobre todo, Erlang/OTP, cuyo modelo de actores, supervisor y filosofía «Let It Crash» adapta al ecosistema de Scheme con la ayuda del sistema Swish como plano concreto.