asgi cgi handler
1.0.0
execute scripts cgi dentro de um servidor asgi
uso simples
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
Como você pode ver, temos suporte para websocket, inspirado no websocketd. Atualmente, mais testes são necessários.
O WebsocketCGIHandler
roteia solicitações para executáveis de endpoint e alimenta dados do websocket no stdin do processo e envia stdout ao cliente linha por linha.
O SSECGIHandler
, significa server send event
, é igual ao websocket, mas só envia stdout para o cliente.
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 : ...