Evix es un motor asíncrono de evaluación para Nix, estructurado como biblioteca, que presenta la evaluación de expresiones Nix como un problema de planificación en lugar de una simple llamada a una herramienta. El proyecto nace de la frustración con nix-eval-jobs y con el propio caché de evaluación de Nix: cada nueva consulta (un push en CI, un cambio en una configuración NixOS, una escritura vigilada, una invocación repetida de un daemon) obliga a recomputar desde cero atributos, thunks perezosos y miles de nodos, cuando en realidad el programa ya construyó la estructura interna del grafo, la imprimió y murió.
La solución propuesta reorganiza el trabajo en torno a eventos tipados y una cola gestionada por un coordinador, en vez de un call stack recursivo dentro de un único worker. Cada worker evalúa una única ruta de atributo (por ejemplo, packages.x86_64-linux.hello) y devuelve un evento: derivación con su nombre, sistema, .drv y outputs; conjunto de atributos con los nombres hijos para seguir explorando; o error con su contexto, sin abortar la corrida completa. Los atributos hijos se reinsertan en la cola, así la recursión se reparte entre workers y los errores no fatales se acumulan en el flujo. Sobre esta base, Evix ofrece un objeto Session de larga vida que conserva el grafo, responde consultas, calcula diffs y observa cambios en entradas locales, además de un daemon tras un socket Unix para que varias invocaciones compartan la misma sesión caliente. Es útil para CI, herramientas de despliegue y watchers, y se apoya en los nix-bindings del autor para hablar con la API C estable de Nix.
