Repolode
swoole

swoole/swoole-src

Extensión de PHP que ofrece un motor de red basado en eventos y un entorno de ejecución de corutinas para crear servicios persistentes de TCP, UDP, HTTP y WebSocket.

Estrellas
18,927
Forks
3,147
Issues abiertos
34
Último commit
hace 10 horas

¿Qué es?

Swoole es una extensión de PHP cuyo núcleo en C/C++ proporciona un bucle de eventos, un planificador de corutinas, servidores, clientes e implementaciones de protocolos. Permite que las aplicaciones PHP se ejecuten como servicios de red persistentes y gestionen muchas conexiones simultáneas sin iniciar un proceso de PHP independiente para cada solicitud.

La extensión incluye clases de servidor para TCP, UDP, sockets Unix, HTTP y WebSocket, además de clientes de corutinas para llamadas TCP y HTTP a servicios upstream. Las corutinas permiten que un worker ejecute otras tareas mientras una de ellas espera una operación de E/S compatible. Varios procesos worker pueden aprovechar varios núcleos de CPU, y los task workers se encargan de trabajos que no deberían bloquear la gestión de solicitudes.

Los workers de Swoole tienen una vida larga, por lo que el estado global y los recursos abiertos pueden persistir entre solicitudes y deben gestionarse con cuidado. Las corutinas proporcionan concurrencia, no paralelismo automático de CPU. La biblioteca PHP incluida añade pools de conexiones para PDO, MySQLi y Redis, además de utilidades como WaitGroup y Barrier.

Funciones clave

  • 01Servidores TCP, UDP y de sockets Unix basados en eventos, con varios puertos de escucha
  • 02Servidores HTTP y WebSocket basados en callbacks de solicitudes y mensajes
  • 03Planificador de corutinas con canales y E/S de sockets y del sistema compatible con corutinas
  • 04Clientes de corutinas TCP, UDP y HTTP para llamadas a servicios upstream
  • 05Hooks del runtime que hacen que determinadas funciones bloqueantes de PHP cedan el control dentro de las corutinas
  • 06APIs de procesos, tablas compartidas y operaciones atómicas para la coordinación entre procesos

Casos de uso

  • Crear APIs HTTP que permanezcan en memoria mientras atienden numerosas solicitudes
  • Ofrecer mensajería WebSocket en tiempo real desde PHP
  • Implementar gateways de protocolos TCP o UDP personalizados en PHP
  • Realizar llamadas concurrentes a varios servicios upstream dentro de una solicitud

Inicio rápido

  1. 1

    Instala la extensión desde PECL

    pecl install swoole
  2. 2

    Guarda el ejemplo del servidor HTTP como server.php

  3. 3

    Ejecuta el servidor con PHP

    php server.php

Antes de usarlo

  • Es una extensión de PHP, por lo que debes tener PHP instalado y cargar la extensión en php.ini.
  • Las corutinas no ofrecen paralelismo de CPU; el código que exige mucho a la CPU sigue bloqueando su worker.
  • Los workers de larga duración pueden conservar el estado global y estático entre solicitudes, así que los datos específicos de cada solicitud requieren cuidado.
  • La rama master está dirigida a Swoole 6.3 y PHP 8.2–8.5; para producción, elige una versión publicada.

Temas

Preguntas frecuentes

¿Qué es swoole-src?
Extensión de PHP que ofrece un motor de red basado en eventos y un entorno de ejecución de corutinas para crear servicios persistentes de TCP, UDP, HTTP y WebSocket. Swoole es una extensión de PHP cuyo núcleo en C/C++ proporciona un bucle de eventos, un planificador de corutinas, servidores, clientes e implementaciones de protocolos. Permite que las aplicaciones PHP se ejecuten como servicios de red persistentes y gestionen muchas conexiones simultáneas sin iniciar un proceso de PHP independiente para cada solicitud.
¿swoole-src es gratuito? ¿Qué licencia tiene?
swoole-src es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿swoole-src sigue mantenido?
Mantenimiento activo. El último commit de swoole-src fue el 24 oct 2026.
¿Para qué puedo usar swoole-src?
Crear APIs HTTP que permanezcan en memoria mientras atienden numerosas solicitudes Ofrecer mensajería WebSocket en tiempo real desde PHP Implementar gateways de protocolos TCP o UDP personalizados en PHP Realizar llamadas concurrentes a varios servicios upstream dentro de una solicitud
¿Cómo se instala swoole-src?
Instala la extensión desde PECL: pecl install swoole Guarda el ejemplo del servidor HTTP como server.php Ejecuta el servidor con PHP: php server.php
¿Dónde consigo swoole-src?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/swoole/swoole-src

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados