Skip to content
GraphQL Engine built with Python 3.6+ / asyncio
Branch: master
Clone or download
abusi Merge pull request #293 from tartiflette/ISSUE-292
Bakes schema objects after extensions baking
Latest commit fa7020b Sep 15, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Move sonar analisys before pypi push Sep 12, 2019
bin chore(*): Refactoring of SDL and Tartiflette Apr 3, 2018
changelogs chore(setup): prepare v1.0.0rc2 Sep 15, 2019
docs doc(migration-guide): relative path link & add docusaurus metadata in… Sep 11, 2019
libgraphqlparser @ b5e381f Update libgraphqlparser Sep 9, 2019
tartiflette fix(schema): bake schema objects after extensions baking Sep 14, 2019
tests fix(test): fixing unit tests Sep 14, 2019
.coveragerc Correct some pylint, ignore some pylint Sep 28, 2018
.dockerignore chore(action): use github actions instead of travis Apr 4, 2019
.editorconfig doc: update from the new Engine API and plugin approach Jun 19, 2019
.gitignore chore(ci): add Travis as CI and Gazr Specification Sep 14, 2018
.gitmodules chore(libgraphqlparser): add tartiflette/libgraphqlparser submodule Jun 3, 2019
.isort.cfg chore(format): Add format on tests and import sorting everywhere Jan 15, 2019 doc(v1): update of the documentation according to version 1 #1 Sep 9, 2019 chore(release): Prepare release 0.6.8 Mar 27, 2019
Dockerfile converted main.workflow to Actions V2 yml files Aug 20, 2019
LICENSE Initial commit Jan 26, 2018 refactor: refactoring query parsing & execution Sep 9, 2019
Makefile chore(Makefile): fix test versioning Sep 9, 2019 Update Sep 9, 2019
docker-compose.yml chore(docker): update docker image path Jun 3, 2019
pylintrc feat(validators): Add query validation to DocumentNode Query parser Sep 9, 2019 chore(setup): prepare v1.0.0rc2 Sep 15, 2019 Only check tartiflette modules and respect pylintrc Sep 12, 2019


Tartiflette is a GraphQL Server implementation built with Python 3.6+.



Read this blogpost about our motivations TL; DR We reached the limits of Graphene, we wanted to build something which met certain requirements:

  • Offers a better developer experience that respects the Python mindset
  • Uses SDL (Schema Definition Language)
  • Uses asyncio as the sole execution engine
  • Be 100% open source


The first milestone is behind us, we are now on the road to the milestone 2.


Discover Tartiflette with our fabulous tutorial on


import asyncio

from tartiflette import Resolver, create_engine

async def resolver_hello(parent, args, ctx, info):
    return "hello " + args["name"]

async def run():
    engine = await create_engine(
        type Query {
            hello(name: String): String

    result = await engine.execute(
        query='query { hello(name: "Chuck") }'

    # {'data': {'hello': 'hello Chuck'}}

if __name__ == "__main__":
    loop = asyncio.get_event_loop()

More details on the API Documentation


Tartiflette is available on

pip install tartiflette

Installation dependencies

As Tartiflette based its Executor engine on libgraphqlparser. You'll need these following commands on your environment to use the library. cmake, bison and flex.


brew install cmake flex bison


apt-get install cmake flex bison

Make sure you have bison in verions 3

Tartiflette over HTTP

Discover our implementation of tartiflette over HTTP called tartiflette-aiohttp.


pip install tartiflette-aiohttp
from aiohttp import web
from tartiflette_aiohttp import register_graphql_handlers

sdl = """
    type Query {
        hello(name: String): String

ctx = {
    'user_service': user_service

        executor_http_methods=['POST', 'GET']


How to contribute to the documentation?

As you may know, the documentation is hosted on This fabulous website is built thanks to another amazing tool, docusaurus.

The content of the documentation is hosted in this repository, to be as close as possible to the code. You will find everything you need/want in the folder /docs.

How to run the website locally?

We built a docker image for the documentation (tartiflette/ on docker hub), which allow us to provide you an easy way to launch the documentation locally, without installing a specific version of node.


  • Docker
  • Docker Compose
  • Make
make run-docs

Every change you will make in the /docs folder will be automatically hot reloaded. 🎉

Known issues

You can’t perform that action at this time.