Repolode
swoole

swoole/swoole-src

장시간 실행되는 TCP, UDP, HTTP, WebSocket 서비스를 구축할 수 있도록 이벤트 기반 네트워킹 엔진과 코루틴 런타임을 제공하는 PHP 확장입니다.

스타
18,927
포크
3,147
열린 이슈
34
마지막 커밋
10시간 전

어떤 프로젝트인가요?

Swoole은 이벤트 루프, 코루틴 스케줄러, 서버와 클라이언트, 프로토콜 구현을 C/C++ 코어로 제공하는 PHP 확장입니다. PHP 애플리케이션을 상시 실행되는 네트워크 서비스로 운영하고, 요청마다 별도의 PHP 프로세스를 시작하지 않고도 다수의 동시 연결을 처리할 수 있습니다.

확장에는 TCP, UDP, Unix 소켓, HTTP, WebSocket용 서버 클래스와 업스트림 TCP 및 HTTP 호출을 위한 코루틴 클라이언트가 포함됩니다. 코루틴을 사용하면 지원되는 I/O 작업이 완료되기를 기다리는 동안 워커가 다른 작업을 실행할 수 있습니다. 여러 워커 프로세스를 통해 CPU 코어 여러 개를 활용할 수 있으며, 태스크 워커는 요청 처리를 막지 않아야 하는 작업을 처리합니다.

Swoole 워커는 오래 실행되므로 전역 상태와 열린 리소스가 요청 간에 유지될 수 있어 신중하게 관리해야 합니다. 코루틴은 동시성을 제공하지만 CPU 작업의 병렬 실행을 자동으로 보장하지는 않습니다. 함께 제공되는 PHP 라이브러리에는 PDO, MySQLi, Redis용 커넥션 풀과 WaitGroup, Barrier 같은 유틸리티가 포함됩니다.

핵심 기능

  • 01여러 리스닝 포트를 지원하는 이벤트 기반 TCP, UDP, Unix 소켓 서버
  • 02요청 및 메시지 콜백을 기반으로 하는 HTTP 및 WebSocket 서버
  • 03채널과 코루틴을 인식하는 소켓 및 시스템 I/O를 제공하는 코루틴 스케줄러
  • 04업스트림 호출을 위한 코루틴 TCP, UDP, HTTP 클라이언트
  • 05선택한 블로킹 PHP 함수가 코루틴 안에서 yield하도록 하는 런타임 훅
  • 06프로세스 간 조정을 위한 Process, shared table, atomic API

활용 사례

  • 여러 요청을 처리하는 동안 메모리에 상주하는 HTTP API 구축
  • PHP로 실시간 WebSocket 메시징 서비스 제공
  • PHP에서 사용자 지정 TCP 또는 UDP 프로토콜 게이트웨이 구현
  • 하나의 요청 안에서 여러 업스트림 서비스에 동시 호출

빠른 시작

  1. 1

    PECL에서 확장 기능을 설치합니다

    pecl install swoole
  2. 2

    HTTP 서버 예제를 server.php로 저장합니다

  3. 3

    PHP로 서버를 실행합니다

    php server.php

사용 전 알아둘 점

  • PHP 확장 기능이므로 PHP를 설치하고 php.ini에서 확장 기능을 로드해야 합니다.
  • 코루틴은 CPU 병렬 처리를 제공하지 않습니다. CPU를 많이 사용하는 코드는 여전히 해당 워커를 차단합니다.
  • 워커가 장시간 실행되므로 전역 및 정적 상태가 요청 간에 유지될 수 있습니다. 요청별 데이터는 주의해서 처리해야 합니다.
  • master 브랜치는 Swoole 6.3 및 PHP 8.2~8.5를 대상으로 하므로 프로덕션에서는 릴리스된 버전을 선택하세요.

토픽

자주 묻는 질문

swoole-src은(는) 무엇인가요?
장시간 실행되는 TCP, UDP, HTTP, WebSocket 서비스를 구축할 수 있도록 이벤트 기반 네트워킹 엔진과 코루틴 런타임을 제공하는 PHP 확장입니다. Swoole은 이벤트 루프, 코루틴 스케줄러, 서버와 클라이언트, 프로토콜 구현을 C/C++ 코어로 제공하는 PHP 확장입니다. PHP 애플리케이션을 상시 실행되는 네트워크 서비스로 운영하고, 요청마다 별도의 PHP 프로세스를 시작하지 않고도 다수의 동시 연결을 처리할 수 있습니다.
swoole-src은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
swoole-src은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
swoole-src은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. swoole-src의 마지막 커밋은 2026년 10월 24일입니다.
swoole-src은(는) 어디에 사용할 수 있나요?
여러 요청을 처리하는 동안 메모리에 상주하는 HTTP API 구축 PHP로 실시간 WebSocket 메시징 서비스 제공 PHP에서 사용자 지정 TCP 또는 UDP 프로토콜 게이트웨이 구현 하나의 요청 안에서 여러 업스트림 서비스에 동시 호출
swoole-src는 어떻게 설치하나요?
PECL에서 확장 기능을 설치합니다: pecl install swoole HTTP 서버 예제를 server.php로 저장합니다 PHP로 서버를 실행합니다: php server.php
swoole-src은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/swoole/swoole-src

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트