hhxsv5/laravel-s
Laravel 및 Lumen 애플리케이션을 Swoole에서 WebSocket, TCP/UDP, 비동기 작업을 지원하는 장기 실행 메모리 상주 PHP 서버로 실행하는 어댑터입니다.
- 스타
- 3,879
- 포크
- 463
- 열린 이슈
- 70
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
LaravelS는 Laravel 및 Lumen 애플리케이션을 Swoole에 연결해, 요청마다 부트스트랩하지 않고 PHP 앱을 지속적으로 실행되는 서버 프로세스로 구동할 수 있게 합니다. Composer로 설치하고 artisan 명령 하나로 설정을 게시한 뒤, 마스터·매니저·워커·태스크 프로세스를 관리하는 `bin/laravels` 스크립트로 실행합니다.
HTTP 제공 외에도 WebSocket 핸들러 인터페이스가 있는 내장 WebSocket 서버, 사용자 지정 TCP·UDP·HTTP 리스너를 위한 멀티 포트 혼합 프로토콜 지원, 비동기 이벤트와 태스크 큐, Linux crontab을 대체할 수 있는 밀리초 단위 cron 작업을 제공합니다. 또한 사용자 지정 프로세스, 공유 메모리용 SwooleTable, graceful reload 및 inotify, fswatch 또는 inotifywait를 이용한 코드 변경 시 자동 reload를 지원하는 설정도 제공합니다.
PHP 8.2 이상, Swoole 5.0 이상, Laravel 또는 Lumen 10 이상이 필요합니다. README에는 Swoole 프로세스와 함께 정적 파일을 제공하기 위한 Nginx 및 Apache 리버스 프록시 설정 예제가 포함되어 있습니다.
핵심 기능
- 01WebSocket 이벤트용 핸들러 인터페이스를 갖춘 내장 HTTP 및 WebSocket 서버
- 02사용자 지정 TCP, UDP, HTTP 리스너를 위한 멀티 포트 혼합 프로토콜
- 03Swoole 태스크 워커에서 실행되는 비동기 이벤트 리스너와 태스크 큐
- 04Linux crontab을 대체할 수 있는 밀리초 단위 cron 작업
- 05graceful reload 및 코드 변경 후 자동 reload
- 06SwooleTable 공유 메모리와 사용자 지정 장기 실행 프로세스
활용 사례
- 요청마다 발생하는 부트스트랩 오버헤드를 줄이기 위해 Laravel 앱을 상주 워커로 제공
- 기존 Laravel 애플리케이션에 실시간 WebSocket 푸시 채널 추가
- Laravel 앱과 코드 및 데이터베이스 접근을 공유하는 사용자 지정 TCP 또는 UDP 서비스 구축
- Linux crontab 항목을 프로세스 내부의 밀리초 단위 타이머와 예약된 Laravel 명령으로 대체
빠른 시작
- 1
Composer를 통해 패키지를 설치합니다
composer require "hhxsv5/laravel-s:~3.8.0" - 2
설정 파일과 바이너리를 게시합니다
php artisan laravels publish - 3
필요에 따라 config/laravels.php의 listen_ip와 listen_port를 조정합니다
- 4
LaravelS를 시작합니다
php bin/laravels start
사용 전 알아둘 점
- Swoole 확장(>=5.0)과 intl 확장이 포함된 PHP >=8.2가 필요하므로 표준 PHP-FPM 호스팅을 그대로 대체할 수 없습니다.
- 장시간 실행되며 메모리에 상주하는 서버로 작동하므로 요청 간에 코드와 상태가 유지되어 주의가 필요합니다. 실행하기 전에 README의 중요 안내를 읽어 보세요.
포함된 컬렉션
토픽
자주 묻는 질문
- laravel-s은(는) 무엇인가요?
- Laravel 및 Lumen 애플리케이션을 Swoole에서 WebSocket, TCP/UDP, 비동기 작업을 지원하는 장기 실행 메모리 상주 PHP 서버로 실행하는 어댑터입니다. LaravelS는 Laravel 및 Lumen 애플리케이션을 Swoole에 연결해, 요청마다 부트스트랩하지 않고 PHP 앱을 지속적으로 실행되는 서버 프로세스로 구동할 수 있게 합니다. Composer로 설치하고 artisan 명령 하나로 설정을 게시한 뒤, 마스터·매니저·워커·태스크 프로세스를 관리하는 `bin/laravels` 스크립트로 실행합니다.
- laravel-s은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- laravel-s은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- laravel-s은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. laravel-s의 마지막 커밋은 2026년 11월 2일입니다.
- laravel-s은(는) 어디에 사용할 수 있나요?
- 요청마다 발생하는 부트스트랩 오버헤드를 줄이기 위해 Laravel 앱을 상주 워커로 제공 기존 Laravel 애플리케이션에 실시간 WebSocket 푸시 채널 추가 Laravel 앱과 코드 및 데이터베이스 접근을 공유하는 사용자 지정 TCP 또는 UDP 서비스 구축 Linux crontab 항목을 프로세스 내부의 밀리초 단위 타이머와 예약된 Laravel 명령으로 대체
- laravel-s는 어떻게 설치하나요?
- Composer를 통해 패키지를 설치합니다: composer require "hhxsv5/laravel-s:~3.8.0" 설정 파일과 바이너리를 게시합니다: php artisan laravels publish 필요에 따라 config/laravels.php의 listen_ip와 listen_port를 조정합니다 LaravelS를 시작합니다: php bin/laravels start
- laravel-s은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/hhxsv5/laravel-s
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
장시간 실행되는 TCP, UDP, HTTP, WebSocket 서비스를 구축할 수 있도록 이벤트 기반 네트워킹 엔진과 코루틴 런타임을 제공하는 PHP 확장입니다.
cron, interval, calendar 및 일회성 트리거와 선택적 영속 작업 저장소를 지원하는 Python 작업 스케줄러 및 작업 큐 라이브러리입니다.
Vapor는 Swift로 웹사이트, API, 클라우드 서비스를 구축하는 HTTP 웹 프레임워크입니다.
정적 사이트와 리버스 프록시를 위한 Rust 웹 서버로, 간결한 설정과 자동 TLS, 로그와 연결되는 요청별 트레이싱을 제공합니다.
STDIN/STDOUT을 사용하는 프로그램을 WebSocket 서버로 감싸는, WebSocket용 inetd 같은 소형 CLI 도구입니다.