Framework de networking multiplataforma, no bloqueante y orientado a eventos, escrito en Swift para crear servidores y clientes de protocolos de alto rendimiento, similar a Netty.
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
Instala la extensión desde PECL
pecl install swoole - 2
Guarda el ejemplo del servidor HTTP como server.php
- 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
Framework asíncrono de Kotlin para crear microservicios, aplicaciones web y API HTTP, desarrollado por JetBrains.
Biblioteca de Kotlin que ofrece builders de coroutines, dispatchers, Flow, canales y primitivas de concurrencia estructurada para código asíncrono.
Vert.x core es un toolkit de bajo nivel para crear aplicaciones reactivas basadas en event loop en la JVM, con acceso a HTTP, TCP y al sistema de archivos.
Una biblioteca C que ofrece E/S asíncrona multiplataforma y proporciona el bucle de eventos que usa Node.js.
Framework web para Go inspirado en Express y basado en el motor fasthttp, para crear REST APIs y servidores web.