Skip to main content

GraphQL Engine for Python

Project description


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. :tada:

Known issues


Quality gate Total alerts Language grade: Python

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for tartiflette, version 1.1.1
Filename, size File type Python version Upload date Hashes
Filename, size tartiflette-1.1.1.tar.gz (426.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page