asgi cgi handler
1.0.0
exécuter des scripts cgi dans un serveur asgi
utilisation simple
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
Comme vous pouvez le voir, nous prenons en charge Websocket, inspiré de websocketd. Actuellement, davantage de tests sont nécessaires.
Le WebsocketCGIHandler
achemine les requêtes vers les exécutables du point de terminaison, alimente les données Websocket dans le stdin du processus et envoie la sortie standard au client ligne par ligne.
Le SSECGIHandler
, qui signifie server send event
, est identique à celui du websocket, mais il envoie uniquement la sortie standard au 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 : ...