Framework de rede multiplataforma e não bloqueante, baseado em eventos e escrito em Swift, para criar servidores e clientes de protocolos de alto desempenho, semelhante ao Netty.
swoole/swoole-src
Extensão PHP que oferece um mecanismo de rede orientado a eventos e um runtime de corrotinas para criar serviços TCP, UDP, HTTP e WebSocket de longa duração.
- Estrelas
- 18,927
- Forks
- 3,147
- Issues abertas
- 34
- Último commit
- há 13 horas
O que é?
Swoole é uma extensão PHP cujo núcleo em C/C++ fornece um loop de eventos, um escalonador de corrotinas, servidores, clientes e implementações de protocolos. Ela permite que aplicações PHP continuem em execução como serviços de rede persistentes e atendam muitas conexões simultâneas sem iniciar um processo PHP separado para cada requisição.
A extensão inclui classes de servidor para TCP, UDP, sockets Unix, HTTP e WebSocket, além de clientes de corrotina para chamadas TCP e HTTP a serviços upstream. As corrotinas permitem que um worker execute outras tarefas enquanto aguarda operações de I/O compatíveis. Vários processos worker podem usar diversos núcleos de CPU, e os task workers executam trabalhos que não devem bloquear o atendimento de requisições.
Os workers do Swoole têm longa duração, então o estado global e os recursos abertos podem persistir entre requisições e precisam ser gerenciados com cuidado. As corrotinas oferecem concorrência, não paralelismo automático de CPU. A biblioteca PHP incluída adiciona pools de conexão para PDO, MySQLi e Redis, além de utilitários como WaitGroup e Barrier.
Recursos principais
- 01Servidores TCP, UDP e de sockets Unix orientados a eventos, com várias portas de escuta
- 02Servidores HTTP e WebSocket baseados em callbacks de requisição e mensagem
- 03Escalonador de corrotinas com canais e operações de socket e de sistema compatíveis com corrotinas
- 04Clientes TCP, UDP e HTTP de corrotina para chamadas a serviços upstream
- 05Hooks de runtime que fazem funções PHP bloqueantes selecionadas cederem a execução dentro de corrotinas
- 06APIs de processos, tabelas compartilhadas e operações atômicas para coordenação entre processos
Casos de uso
- Criar APIs HTTP que permanecem na memória entre muitas requisições
- Oferecer mensagens WebSocket em tempo real usando PHP
- Implementar gateways de protocolos TCP ou UDP personalizados em PHP
- Fazer chamadas concorrentes a vários serviços upstream dentro de uma única requisição
Início rápido
- 1
Instale a extensão pelo PECL
pecl install swoole - 2
Salve o exemplo do servidor HTTP como server.php
- 3
Execute o servidor com PHP
php server.php
Antes de usar
- Como é uma extensão do PHP, é necessário ter o PHP instalado e carregar a extensão no php.ini.
- Corrotinas não oferecem paralelismo de CPU; código que exige muito da CPU continua bloqueando seu worker.
- Workers de longa duração podem manter o estado global e estático entre requisições, por isso é preciso ter cuidado com dados específicos de cada requisição.
- A branch master tem como alvo o Swoole 6.3 e o PHP 8.2–8.5; para produção, escolha uma versão lançada.
Em coleções
Tópicos
Perguntas frequentes
- O que é swoole-src?
- Extensão PHP que oferece um mecanismo de rede orientado a eventos e um runtime de corrotinas para criar serviços TCP, UDP, HTTP e WebSocket de longa duração. Swoole é uma extensão PHP cujo núcleo em C/C++ fornece um loop de eventos, um escalonador de corrotinas, servidores, clientes e implementações de protocolos. Ela permite que aplicações PHP continuem em execução como serviços de rede persistentes e atendam muitas conexões simultâneas sem iniciar um processo PHP separado para cada requisição.
- swoole-src é gratuito? Qual é a licença?
- swoole-src é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- swoole-src ainda é mantido?
- Manutenção ativa. O último commit de swoole-src foi em 24 de out. de 2026.
- Para que posso usar swoole-src?
- Criar APIs HTTP que permanecem na memória entre muitas requisições Oferecer mensagens WebSocket em tempo real usando PHP Implementar gateways de protocolos TCP ou UDP personalizados em PHP Fazer chamadas concorrentes a vários serviços upstream dentro de uma única requisição
- Como instalar swoole-src?
- Instale a extensão pelo PECL: pecl install swoole Salve o exemplo do servidor HTTP como server.php Execute o servidor com PHP: php server.php
- Onde consigo swoole-src?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/swoole/swoole-src
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Framework assíncrono em Kotlin para criar microsserviços, aplicações web e APIs HTTP, desenvolvido pela JetBrains.
Biblioteca Kotlin com builders de coroutines, dispatchers, Flow, canais e primitivas de concorrência estruturada para código assíncrono.
O Vert.x core é um toolkit de baixo nível para criar aplicações reativas baseadas em event loop na JVM, com suporte a HTTP, TCP e acesso ao sistema de arquivos.
Biblioteca C que oferece I/O assíncrono multiplataforma e implementa o loop de eventos usado pelo Node.js.
Framework web para Go inspirado no Express, construído sobre o mecanismo fasthttp, para criar APIs REST e servidores web.