{"id":13494474,"url":"https://github.com/tartiflette/tartiflette","last_synced_at":"2025-03-28T14:31:22.534Z","repository":{"id":28674233,"uuid":"119035565","full_name":"tartiflette/tartiflette","owner":"tartiflette","description":"GraphQL Engine built with Python 3.6+ / asyncio","archived":false,"fork":false,"pushed_at":"2023-09-11T07:49:27.000Z","size":6828,"stargazers_count":858,"open_issues_count":20,"forks_count":35,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-03-25T11:02:22.442Z","etag":null,"topics":["api","asyncio","graphql","python","sdl","tartiflette"],"latest_commit_sha":null,"homepage":"https://tartiflette.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tartiflette.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmaps/milestone-1.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-26T09:56:10.000Z","updated_at":"2025-03-17T23:34:39.000Z","dependencies_parsed_at":"2024-06-18T18:21:15.130Z","dependency_job_id":"70a7df23-6d4e-4141-89c2-f2a519e01303","html_url":"https://github.com/tartiflette/tartiflette","commit_stats":null,"previous_names":["dailymotion/tartiflette"],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tartiflette%2Ftartiflette","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tartiflette%2Ftartiflette/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tartiflette%2Ftartiflette/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tartiflette%2Ftartiflette/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tartiflette","download_url":"https://codeload.github.com/tartiflette/tartiflette/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246045932,"owners_count":20714872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","asyncio","graphql","python","sdl","tartiflette"],"created_at":"2024-07-31T19:01:25.373Z","updated_at":"2025-03-28T14:31:17.524Z","avatar_url":"https://github.com/tartiflette.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"![Tartiflette](docs/github-landing.png)\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=tartiflette_tartiflette\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=tartiflette_tartiflette)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/tartiflette/tartiflette.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/tartiflette/tartiflette/alerts/)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/tartiflette/tartiflette.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/tartiflette/tartiflette/context:python)\n\n\n**Tartiflette** is a GraphQL Server implementation built with **Python 3.7+**.\n\n**Summary**\n\n- [Motivation](#motivation)\n- [Status](#status)\n- [Usage](#usage)\n- [Installation](#installation)\n  - [Building from source](#building-from-source)\n- [HTTP server implementations](#http-server-implementations)\n- [Roadmaps](#roadmaps)\n- [How to contribute to the documentation?](#how-to-contribute-to-the-documentation)\n  - [How to run the website locally?](#how-to-run-the-website-locally)\n\n## Motivation\n\n[Read this blogpost about our motivations](https://medium.com/dailymotion/tartiflette-graphql-api-engine-python-open-source-a200c5bbc477)\nTL; DR\nWe reached the limits of Graphene, we wanted to build something which met certain requirements:\n* **Offers a better developer experience** that respects the Python mindset\n* **Uses SDL** _(Schema Definition Language)_\n* Uses **asyncio** as the sole execution engine\n* Be 100% open source\n\n## Status\n\n**The [first milestone](/docs/roadmaps/milestone-1.md) is behind us, we are now [on the road to the milestone 2](/docs/roadmaps/milestone-2.md)**.\n\n**DNA**\n\n* Define the **GraphQL schema** with the brand new [SDL _(Schema Definition Language)_](https://github.com/facebook/graphql/blob/master/spec/Section%203%20--%20Type%20System.md).\n* **Performance oriented:** Performance is the core of our work.\n* **Simple is better than complex:** Built with [the Zen of Python](https://www.python.org/dev/peps/pep-0020/#id3) in mind. No over-engineering.\n\nDiscover Tartiflette with our fabulous tutorial on [https://tartiflette.io/docs/tutorial/getting-started](https://tartiflette.io/docs/tutorial/getting-started)\n\n## Usage\n\n```python\nimport asyncio\n\nfrom tartiflette import Resolver, create_engine\n\n@Resolver(\"Query.hello\")\nasync def resolver_hello(parent, args, ctx, info):\n    return \"hello \" + args[\"name\"]\n\n\nasync def run():\n    engine = await create_engine(\n        \"\"\"\n        type Query {\n            hello(name: String): String\n        }\n        \"\"\"\n    )\n\n    result = await engine.execute(\n        query='query { hello(name: \"Chuck\") }'\n    )\n\n    print(result)\n    # {'data': {'hello': 'hello Chuck'}}\n\nif __name__ == \"__main__\":\n    asyncio.run(run())\n```\n\nMore details on the [API Documentation](https://tartiflette.io/docs/api/engine/)\n\n## Installation\n\nTartiflette is available on [pypi.org](https://pypi.org/project/tartiflette/).\n\nWhile the project depends on *[libgraphqlparser](https://github.com/graphql/libgraphqlparser)*,\nwheels are provided since version 1.4.0, ensuring that no system dependency is required.\n\nTo install the library:\n\n```bash\npip install tartiflette\n```\n\n### Building from source\n\nIf you use a platform incompatible with the provided wheels, you'll need to install `cmake` to build `libgraphqlparser`\nin order to install the library.\n\n*macOS*\n```bash\nbrew install cmake\n```\n\n*Debian/Ubuntu*\n```bash\napt-get install cmake\n```\n\n## HTTP server implementations\n\n`tartiflette` library itself is transport agnostic, but to simplify integration with existing HTTP servers, two\ndifferent libraries are available:\n\n- [tartiflette-aiohttp](https://github.com/tartiflette/tartiflette-aiohttp): integration with `aiohttp`\n- [tartiflette-asgi](https://github.com/tartiflette/tartiflette-asgi): integration with ASGI compatible HTTP servers\n\n## Roadmaps\n\n* [Milestone 1 _(Released)_](/docs/roadmaps/milestone-1.md)\n* [Milestone 2 - **Work in progress**](/docs/roadmaps/milestone-2.md)\n\n## How to contribute to the documentation?\n\nAs you may know, the documentation is hosted on https://tartiflette.io. This _fabulous_ website is built thanks to another amazing tool, [docusaurus](https://docusaurus.io/).\n\nThe 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`.\n\n### How to run the website locally?\n\nWe built a docker image for the documentation _(tartiflette/tartiflette.io on docker hub)_, which allow us to provide you an easy way to launch the documentation locally, without installing a specific version of node.\n\n**prerequisite**:\n- Docker\n- Docker Compose\n- Make\n\n```bash\nmake run-docs\n```\n\nEvery change you will make in the `/docs` folder will be automatically hot reloaded. :tada:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftartiflette%2Ftartiflette","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftartiflette%2Ftartiflette","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftartiflette%2Ftartiflette/lists"}