Pythonのライブラリの紹介です。それぞれの説明と使用例は以下になります。
L 319. uvicorn(非同期サーバ)
uvicorn は、 ASGI (Asynchronous Server Gateway Interface) に対応した、高速・軽量な非同期サーバーです。FastAPI や Starlette などのモダンなWebフレームワークで広く使われています。
▼主な特徴・機能
非同期処理 (asyncio) をネイティブサポート
HTTP/1.1、WebSocket対応(HTTP/2は未対応)
uvloop(libuvベース)による高速イベントループの利用
開発モード(–reload)あり
Gunicornのワーカーとしても利用可能(uvicorn.workers.UvicornWorker)
▼使い方
#FastAPI アプリを main.py に記述している場合:
uvicorn main:app –reload –host 0.0.0.0 –port 8000
#Gunicorn と併用:
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker
L 320. hypercorn(非同期Webサーバ)
hypercorn は、 Quart をはじめとする ASGI アプリケーション向けの 非同期Webサーバです。HTTP/2 や QUIC (HTTP/3) にも対応しており、プロトコル対応が豊富です。
▼主な特徴・機能
ASGIとWSGIの両方をサポート
HTTP/1.1, HTTP/2, WebSocket, HTTP/3(QUIC)をサポート
TLS(HTTPS)対応
asyncio, trio, curio いずれのバックエンドにも対応
▼使い方
#FastAPIアプリ(例: main.py)で起動:
hypercorn main:app –reload –bind 0.0.0.0:8000
#HTTP/2で起動(証明書必要):
hypercorn main:app –certfile cert.pem –keyfile key.pem –bind 0.0.0.0:443 –h2
L 321. gunicorn(UNIX 系 Python Web サーバ)
gunicorn(Green Unicorn)は、 WSGI アプリケーションのための UNIX 系 Python Web サーバーです。マルチプロセス対応で、FlaskやDjangoと組み合わせて本番環境で使われることが多いです。
▼主な特徴・機能
WSGI(非非同期)ベース
マルチプロセス対応(プリフォークモデル)
プロダクション用途に広く使用されている
カスタムワーカー(例: uvicorn.workers.UvicornWorker)を使えば ASGIも対応可能
▼使い方
#Flaskアプリ(例: app.py)を起動:
gunicorn app:app –workers 4 –bind 0.0.0.0:8000
#FastAPIやASGIアプリを起動(uvicornワーカー使用):
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker


Comments