strawberry-graphql
A library for creating GraphQL APIs
Decision gist · record as of 2026-08-14
Yes. Strawberry GraphQL is actively maintained, has low install friction, carries a permissive MIT license, and is in the top 5000 PyPI packages by download volume. It is a solid choice for building GraphQL APIs in Python, especially if you prefer dataclass-based schema definition and framework integration over manual schema files. No known security vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; the CLI extra requires additional dependencies beyond the base install.
- Low install friction with a pure-Python wheel distribution.
- Active maintenance with a release 4 days ago.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you include the license notice.
last release 2026-08-10 (4 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 7,728,614 downloads/mo, #1,701 on PyPI
Alternatives
Verify before relying
pip install strawberry-graphql
import strawberry
@strawberry.type
class Query:
@strawberry.field
def hello(self) -> str:
return "world"
schema = strawberry.Schema(query=Query)- Whether the mypy plugin integration works reliably with current mypy versions
- Performance characteristics under high query load compared to other GraphQL libraries
- Maturity and stability of the Django integration layer
What it is and what it does
Strawberry GraphQL lets you define GraphQL schemas using Python dataclasses and type annotations, eliminating the need to write separate schema definition files. You decorate Python classes with @strawberry.type and methods with @strawberry.field, then pass them to strawberry.Schema() to generate a complete GraphQL API. The library handles type validation and schema generation automatically.
It integrates with popular Python web frameworks—Django, Starlette, and others—through dedicated view classes and middleware. A built-in dev server and CLI tool let you test schemas immediately. The package depends on graphql-core for GraphQL execution, python-dateutil for date handling, typing-extensions for compatibility, packaging for version parsing, and cross-web for framework integration. Type checking is supported via a mypy plugin.
Use it for
- Build a GraphQL API endpoint in a Django application by adding the strawberry.django app and GraphQLView to your URL routing.
- Create a type-safe GraphQL schema using Python dataclasses, with automatic validation and introspection support.
- Prototype and test a GraphQL schema locally using the strawberry dev server before deploying to production.
- Integrate GraphQL into an async web framework like Starlette or Quart for high-concurrency API serving.
- Enable static type checking of your GraphQL schema definition using the mypy plugin for early error detection.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Strawberry GraphQL is actively maintained, has low install friction, carries a permissive MIT license, and is in the top 5000 PyPI packages by download volume. It is a solid choice for building GraphQL APIs in Python, especially if you prefer dataclass-based schema definition and framework integration over manual schema files. No known security vulnerabilities.
Install
strawberry-graphql on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Active maintenance with a release 4 days ago. Requires Python 3.10 or later.
Requires Python 3.10 or later; the CLI extra requires additional dependencies beyond the base install.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you include the license notice.
Quickstart
pip install strawberry-graphql
import strawberry
@strawberry.type
class Query:
@strawberry.field
def hello(self) -> str:
return "world"
schema = strawberry.Schema(query=Query)
Verify before relying
- Whether the mypy plugin integration works reliably with current mypy versions
- Performance characteristics under high query load compared to other GraphQL libraries
- Maturity and stability of the Django integration layer
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesgraphql-coretyping-extensionspython-dateutilpackagingcross-web |
| Maintenance | Actively maintained 4 days since the last release |
| First released | |
| Downloads | 7,728,614 / month, #1,701 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python Modules |
Evidence: strawberry_graphql-0.324.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “graphql server dataclasses”
- strawberry-graphqlStrawberry GraphQL is a Python library for building GraphQL APIs…
- apischemaApischema handles JSON serialization/deserialization, GraphQL schema…
- graphql-server-coreGraphQL-Server-Core provides base utilities and helper functions for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also strawberry-graphql-django · ariadne · Flask-GraphQL · graphene · graphql-server · graphql-core · graphene-django · sgqlc · django-graphiql-debug-toolbar · labelbox