PHP RFC: True Async

El proyecto TrueAsync se ha promovido durante aproximadamente un año a través del proceso oficial de RFC en wiki.php.net. Se han publicado dos RFC que describen el modelo básico de concurrencia y la concurrencia estructurada.

RFC #1 — PHP True Async

Autor: Edmond [HT] Versión: 1.7 Versión objetivo: PHP 8.6+ Draft

El RFC principal que define el modelo de concurrencia para PHP. Describe corutinas, funciones spawn() / await() / suspend(), el objeto Coroutine, interfaces Awaitable y Completable, mecanismo de cancelación cooperativa, integración con Fiber, manejo de errores y apagado elegante.

Principios clave:

Leer RFC en wiki.php.net →

RFC #2 — Scope y concurrencia estructurada

Autor: Edmond [HT] Versión: 1.0 Draft

Una extensión del RFC base. Introduce la clase Scope, vinculando el tiempo de vida de las corutinas al ámbito léxico. Describe la jerarquía de scopes, propagación de errores, política de corutinas “zombi” y secciones críticas mediante protect().

Qué resuelve:

Leer RFC en wiki.php.net →

Cómo se relacionan estos RFC

El primer RFC define primitivas de bajo nivel — corutinas, funciones base y API C para extensiones. El segundo RFC agrega concurrencia estructurada — mecanismos para gestionar grupos de corutinas que hacen que el código concurrente sea seguro y predecible.

Juntos forman un modelo completo de programación asíncrona para PHP:

  RFC #1: True Async RFC #2: Scope
Nivel Primitivas Gestión
Provee spawn(), await(), Coroutine Scope, TaskGroup, protect()
Analogías Go goroutines, Kotlin coroutines Kotlin CoroutineScope, Python TaskGroup
Objetivo Ejecutar código concurrente Gestión segura del ciclo de vida

Estado actual del RFC

Actualmente el proyecto TrueAsync se ha enfrentado a incertidumbre en el proceso de RFC. Durante los últimos meses, la discusión se ha detenido prácticamente, y no hay claridad sobre su futuro. Es bastante obvio que el RFC no podrá pasar la votación, y no hay forma de cambiar esto.

Por estas razones, el proceso de RFC se considera actualmente congelado, y el proyecto continuará desarrollándose dentro de la comunidad abierta, sin estatus “oficial”.

Participar en la discusión

Los RFC se discuten en la lista de correo internals@lists.php.net y en GitHub Discussions.

También únase a la conversación en Discord.