[Open Source] Escapion: Motor termodinámico para optimizar y auditar código Python

Hola a todos en la comunidad!

Quiero compartir con vosotros un proyecto open-source en el que he estado trabajando recientemente. Se llama Escapion y es un experimento que mezcla manipulación de árboles de sintaxis (AST) con algoritmos de búsqueda estocástica.

Escapion es un agente autónomo local que utiliza principios de termodinámica (recocido simulado) para mutar el código Python a nivel de AST, con el objetivo de encontrar micro-optimizaciones de rendimiento o descubrir y parchear casos límite (edge cases) en entornos aislados.

¿Qué hace exactamente?

El proyecto se divide en dos grandes capacidades que ocurren de forma totalmente local en tu máquina:

  • Optimización de Código (CodeForge): Le pasas una función que funciona correctamente. Escapion muta el código fuente (explorando operadores, reordenando lógica) y mide el tiempo de ejecución en microsegundos. Si encuentra una mutación que ejecuta más rápido pasando los mismos tests (a veces aprovechando peculiaridades del bytecode de CPython), te la propone.
  • Auditoría y Auto-parcheo: En un entorno de pruebas controlado (Sandbox), el motor actúa como un fuzzer estructurado. Intenta encontrar entradas que rompan tu función (por ejemplo, provocando un ReDoS en una expresión regular). Si lo logra, cambia de modo, busca un parche a nivel de AST que solucione la brecha y verifica que los usuarios legítimos sigan pudiendo usar la función.

¿Cómo funciona por debajo?

  • Agnóstico y Termodinámico: El núcleo es un algoritmo de Metropolis-Hastings. No entiende de Python ni de ciberseguridad, solo entiende de una “función de energía” (tiempo de ejecución o tasa de errores) que debe minimizar.
  • Manipulación AST: Las mutaciones no son cambios de texto al azar, sino transformaciones estructurales seguras utilizando el módulo ast nativo de Python.
  • Aislamiento: Todo ocurre dentro de una jaula de subprocesos locales (watchdog pattern) para que los bloqueos o bucles infinitos durante la exploración no cuelguen tu máquina.Os invito a probarlo y destriparlo!

El proyecto acaba de llegar a su Versión 1.0 y el código está publicado en GitHub para que cualquiera pueda auditarlo, probarlo en sus propios proyectos o contribuir.

https://github.com/MejaTpr/Escapion