RORO

ふつうの日記

[Python] Starlette (ASGI) で Graphene v3 (GraphQL) を使う

Python用のGraphQLフレームワークの Graphene のバージョン v3-beta を、ASGIフレームワークのStarlette上で使いたいので簡単なライブラリを書いた。

https://github.com/ciscorn/starlette-graphene3

subscriptions (WebSocket) にも対応させてある。

Starletteは標準でもGraphene v2のサポートを備えている (starltte.graphql) のだけど、このGraphene v2は内部で graphql-core-legacy という古いライブラリに依存しているため、文字通りレガシーなものになってしまっている。

次期Graphene v3の土台になっている graphql-coreは、Python 2を切り捨ててasyncioネイティブに書き直されているので、非同期処理が簡潔に実装されていて、非同期のWebフレームワークやsubscriptionsに容易に対応できる。