runloom: corutinas al estilo Go para Python 3.13t sin GIL

Fuentes: runloom: Go-style stackful goroutines for free-threaded Python 3.13t+

runloom es una biblioteca que lleva a CPython el modelo de gorutinas de Go: corutinas apilables con canales, scheduler M:N con work-stealing, netpoll (epoll/kqueue/IOCP) y un cambio de contexto en ensamblador de unos 80 nanosegundos, sin syscall. Gracias a runloom.fiber(fn) y runloom.monkey.patch(), el código bloqueante de la biblioteca estándar —socket, time, threading— se vuelve cooperativo y se aparca sobre el descriptor en lugar de sobre el hilo del sistema, de forma que un solo proceso puede ejecutar un millón de gorutinas repartidas entre todos los núcleos.

El rendimiento multi-núcleo requiere CPython 3.13t sin GIL. Sobre esa compilación, con 8 hubs, runloom empata o supera a Go en pruebas controladas: 2,29 millones de spawn por segundo en C frente a los 2,10 millones de Go; 596.000 frente a 603.000 peticiones por segundo con keep-alive y handler en Python; paridad en churn de conexiones (75.000-78.000 por segundo) y cambio de contexto en el orden de 50-75 nanosegundos. La única diferencia reseñable es el consumo por gorutina en reposo: 8,8 KB frente a 2,7 KB en Go, a causa del frame de evaluación de CPython.

La biblioteca incluye canales con select, integración con asyncio mediante runloom.aio, aislamiento y recuperación ante bloqueos accidentales y compatibilidad con Linux x86_64/aarch64, macOS y Windows. No acelera Python por núcleo, pero sí permite saturar todos los núcleos con un modelo bloqueante familiar.