FastQL is an early-stage framework with a working Python schema API, GraphQL
language pipeline, validation layer, async executor, introspection, SDL printer,
and local development server.
Implemented
Core engine and authoring:
- Object, input, interface, enum, union, and custom scalar definitions
- Query, mutation, and subscription roots with full execution
- Python annotation and explicit
Field declaration styles
- Arguments, defaults, descriptions, deprecations, and directives
- Parsing, validation, variable coercion, field collection, and async execution
- Context injection, dependency providers, field extensions, and permissions
- Introspection, SDL output, CLI serving, and a browser playground
- Generic types and configurable error masking
Data, performance, and observability:
Protocol and ecosystem:
- Streaming subscriptions over
graphql-transport-ws,
SSE, and multipart/mixed
- Incremental delivery with
@defer / @stream
- Relay pagination and Apollo Federation v2
- Custom directives, field visibility, and enum customization
- File uploads and query batching
- Pydantic integration and a test client + schema-export CLI
- ASGI, Starlette, FastAPI, Flask, Django, plus
AIOHTTP, Sanic, Litestar, Quart, and Django Channels adapters
Current boundaries
- The bundled development HTTP server is for local use only. It does not provide
TLS, authentication, connection reuse, production hardening, or a streaming
subscription transport — run subscriptions and federation through a production
framework adapter instead.
- Schema stitching and persisted operations are outside the current capability set.
- Compatibility should be evaluated against the repository’s tests and
canonical specifications, not inferred from
another framework’s API.
Planned
The following documentation topics are deferred until their underlying feature or
policy exists. They are tracked here so readers can distinguish what is missing
documentation from what is a missing capability.
- Schema / query codegen — Generate TypeScript or Python client types from a
FastQL schema. Blocked on agreeing a codegen strategy.
- Editor integration / mypy guidance — Typed stub generation, plugin for
mypy or pyright, IDE support. Blocked on completing the public type surface.
- Upgrading & breaking-changes — Migration guides between major versions.
Deferred until a versioning and stability policy exists post-1.0.
- Dedicated field-extensions page — A standalone guide to
FieldExtension
(currently documented alongside permissions). Planned once the API stabilises.
- Federation entity interfaces —
@interfaceObject and entity interface
patterns. Planned when support is implemented.
Do not expose the development server directly to untrusted networks.