Repolode
swoole

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. 1

    Instale a extensão pelo PECL

    pecl install swoole
  2. 2

    Salve o exemplo do servidor HTTP como server.php

  3. 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