asgi cgi handler
1.0.0
Führen Sie CGI-Skripte auf einem ASGI-Server aus
einfache Verwendung
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
Wie Sie sehen können, bieten wir Websocket-Unterstützung, die von websocketd inspiriert ist. Derzeit sind weitere Tests erforderlich.
Der WebsocketCGIHandler
leitet Anforderungen an ausführbare Endpunktdateien weiter, speist Websocket-Daten in die stdin des Prozesses ein und sendet stdout Zeile für Zeile an den Client.
Der SSECGIHandler
, d. h. server send event
, ist genau wie der WebSocket-Handler, sendet jedoch nur Standardausgabe an den Client.
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 : ...