Repolode
Kludex

Kludex/starlette

Pythonで非同期WebサービスやAPIを構築するための、軽量なASGIフレームワーク兼ツールキット。

スター
12,676
フォーク
1,383
未解決の Issue
46
最終コミット
昨日

これは何?

Starletteは、Pythonで非同期Webサービスを構築するための軽量なASGIフレームワーク兼ツールキットです。ルーティング、HTTPとWebSocketの処理、バックグラウンドタスク、起動・終了イベントのほか、CORS、GZip、セッションなどのミドルウェアを提供します。各コンポーネントは単独でも、組み合わせて完全なフレームワークとしても利用できます。

Starletteの必須依存関係はanyioのみです。テストクライアント、Jinja2テンプレート、フォーム解析、セッションなどの機能は、オプションの追加機能としてインストールできます。uvicornなどのASGIサーバー上で動作し、asyncioとtrioの両バックエンドに対応しています。

各コンポーネントはASGIインターフェースに準拠しているため、ミドルウェアやマウント可能なアプリケーションは、原理上ほかのASGIフレームワークとも共有できます。

主な機能

  • 01軽量なHTTPルーティングとリクエスト/レスポンス処理。
  • 02WebSocketに対応。
  • 03プロセス内のバックグラウンドタスクと起動・終了イベント。
  • 04CORS、GZip、静的ファイル、セッション/Cookie用の組み込みミドルウェア。
  • 05httpx2をベースにしたテストクライアント。
  • 06asyncioとtrioのバックエンドに対応。

ユースケース

  • Pythonで非同期JSON APIやWebサービスを構築する。
  • PythonバックエンドにWebSocketエンドポイントを追加する。
  • カスタムスタックで、ミドルウェアやレスポンスなどの個別のASGIコンポーネントを利用する。

クイックスタート

  1. 1

    Starletteをインストールする

    pip install starlette
  2. 2

    uvicornなどのASGIサーバーをインストールする

    pip install uvicorn
  3. 3

    例をmain.pyとして保存し、Uvicornで実行する

    uvicorn main:app

使う前に知っておきたいこと

  • Starletteはツールキットのため、サーバーや必要に応じた依存関係を自分で組み合わせる必要があります。
  • 機能によっては、jinja2やpython-multipartなどの追加パッケージが必要です。

トピック

よくある質問

starlette とは?
Pythonで非同期WebサービスやAPIを構築するための、軽量なASGIフレームワーク兼ツールキット。 Starletteは、Pythonで非同期Webサービスを構築するための軽量なASGIフレームワーク兼ツールキットです。ルーティング、HTTPとWebSocketの処理、バックグラウンドタスク、起動・終了イベントのほか、CORS、GZip、セッションなどのミドルウェアを提供します。各コンポーネントは単独でも、組み合わせて完全なフレームワークとしても利用できます。
starlette は無料で使えますか?ライセンスは?
starlette は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
starlette は今もメンテナンスされていますか?
活発にメンテナンス中。starlette の最終コミットは 2026年10月18日 です。
starlette は何に使えますか?
Pythonで非同期JSON APIやWebサービスを構築する。 PythonバックエンドにWebSocketエンドポイントを追加する。 カスタムスタックで、ミドルウェアやレスポンスなどの個別のASGIコンポーネントを利用する。
starlette のインストール方法は?
Starletteをインストールする: pip install starlette uvicornなどのASGIサーバーをインストールする: pip install uvicorn 例をmain.pyとして保存し、Uvicornで実行する: uvicorn main:app
starlette はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/Kludex/starlette

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト