asgi cgi handler
1.0.0
asgi 서버 내에서 cgi 스크립트 실행
간단한 사용법
import uvicorn
from asgi_cgi import HTTPCGIHandler , WebsocketCGIHandler
uvicorn . run ( HTTPCGIHandler ())
from fastapi import FastAPI
from asgi_cgi import HTTPCGIHandler , WebsocketCGIHandler , SSECGIHandler
app = FastAPI ( title = "CGI Server" )
app . mount ( "/cgi-bin" , HTTPCGIHandler ()) # type: ignore
app . mount ( "/ws" , WebsocketCGIHandler ()) # type: ignore
app . mount ( "/sse" , SSECGIHandler ()) # type: ignore
보시다시피, 우리는 websocketd에서 영감을 받은 websocket 지원을 제공합니다. 현재 더 많은 테스트가 필요합니다.
WebsocketCGIHandler
는 요청을 끝점 실행 파일로 라우팅하고 websocket 데이터를 프로세스의 stdin에 공급하고 stdout을 클라이언트에 한 줄씩 보냅니다.
server send event
의미하는 SSECGIHandler
웹소켓과 동일하지만 표준 출력만 클라이언트로 전송합니다.
ErrHandler = Callable [[ bytes ], Union [ Awaitable [ None ], None ]]
class HTTPCGIHandler :
def __init__ ( self , directory : str = ..., error_handler : ErrHandler = ...) -> None : ...
class WebsocketCGIHandler :
def __init__ ( self , directory : str = ..., error_handler : ErrHandler = ...) -> None : ...
class SSECGIHandler :
def __init__ ( self , directory : str = ..., error_handler : ErrHandler = ...) -> None : ...