В Python пытаются принести настоящие goroutines. runloom… — Python Community — TG.ME

В Python пытаются принести настоящие goroutines.

runloom — экспериментальный runtime для free-threaded Python 3.13t+, где можно писать обычный блокирующий код, но запускать его как лёгкие fibers:


runloom.fiber(fn)


Без async def, без await, без переписывания всего приложения под asyncio.

Под капотом там не магия, а довольно жёсткая инженерия: hand-written asm context switch, C work-stealing scheduler, netpoll, Go-style channels и monkey.patch(), который делает blocking stdlib cooperative.

То есть urlopen(), socket, time, threading могут выглядеть как обычный синхронный код, но runtime будет парковать fiber, а не весь OS thread.

По бенчмаркам автора, Runloom уже близко к Go по scheduler throughput: около 2.29M spawn/s на C-entry, parity на conn/s и почти parity на keep-alive echo с Python handler.

Но важный нюанс: мультикорный выигрыш требует free-threaded CPython с выключенным GIL. На обычной GIL-сборке модель останется скорее удобной альтернативой asyncio, а не способом выжать все ядра.

Ещё честный минус - память. Пустой parked fiber весит больше Go-горутины примерно в 3.3 раза, потому что за ним тянется CPython eval frame.

pip install runloom

https://github.com/robertsdotpm/runloom

@Python_Community_ru
GitHub
GitHub - robertsdotpm/runloom: Real Goroutines for Python 3.13t+ free-threaded.
Real Goroutines for Python 3.13t+ free-threaded. Contribute to robertsdotpm/runloom development by creating an account on GitHub.
July 17, 2026 707 3