Following on our experience in managing GraphQL APIs in production for more than a year, we've decided to build a brand new GraphQL Engine.
Here are the subjects we were working during 2018 and early 2019:
- Define Open Source guidelines (Contributing, Code of conduct, Issue Template, PR Template).
- (API) Describe the API that will be used by the Tartiflette users.
- (API) Engine constructor
- (API) How to declare custom directives in the Engine Constructor.
- (API) How to declare middlewares on a resolver.
- (API) Executor implementation.
- (API) Resolver implementation.
- (API) Resolver -
Info
parameter.
- (Website) Landing page for https://tartiflette.io
- (Website) Publish documentation on https://tartiflette.io
- Build communication interface between libgraphqlparser & Tartiflette through CFFI.
- Build a
Parser
which parses a GraphQL Query and creates a list of Asynchronous Tasks. - Build an
Executor
which executes the Asynchronous Tasks list created by theParser
.
- Bind the Types specified in the SDL to the
Executor
. - Typing resolver outputs
- Error management
- Abstract and Compound Types: Interfaces
- Abstract and Compound Types: Unions
- NodeDefinition: Check that the Type exists.
- (Directive) Integrate the directive's execution in the Executor.
- (Directive) introspection based on directives
- Subscription Support
- Build a
Parser
which parse the Schema Definition Language and creates the associated schema and types as Python objects. - Think about custom Scalar API
- (Introspection) Implement the
__type
Field. - (Introspection) Implement the
__schema
Field. - (Directive) Append directive information (from SDL) as metadata on Fields / Types.
- (Directive) Implement the declaration of the custom directives into the Engine constructor.
- (Directive) Implement @deprecated
- Run Code Quality checks + Tests
- Automatize the integration of
libgraphqlparser
- Build & Publish artifact to pypi