{"id":13499325,"url":"https://github.com/graphql-python/graphql-core","last_synced_at":"2026-06-11T23:00:43.089Z","repository":{"id":1692096,"uuid":"143207933","full_name":"graphql-python/graphql-core","owner":"graphql-python","description":"A Python 3 port of the GraphQL.js reference implementation of GraphQL.","archived":false,"fork":false,"pushed_at":"2026-06-06T09:39:10.000Z","size":5672,"stargazers_count":528,"open_issues_count":30,"forks_count":145,"subscribers_count":20,"default_branch":"main","last_synced_at":"2026-06-06T11:17:33.044Z","etag":null,"topics":["api","asyncio","graphene","graphql","graphql-core","graphql-js","graphql-python","python","python-3"],"latest_commit_sha":null,"homepage":"","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/graphql-python.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"cito"}},"created_at":"2018-08-01T20:57:07.000Z","updated_at":"2026-06-06T09:39:14.000Z","dependencies_parsed_at":"2026-03-24T01:00:59.521Z","dependency_job_id":null,"html_url":"https://github.com/graphql-python/graphql-core","commit_stats":{"total_commits":1122,"total_committers":35,"mean_commits":32.05714285714286,"dds":0.04723707664884136,"last_synced_commit":"46244446c66ca3033f5295f6c796108e4c1f7365"},"previous_names":["graphql-python/graphql-core-next"],"tags_count":61,"template":false,"template_full_name":null,"purl":"pkg:github/graphql-python/graphql-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-python%2Fgraphql-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-python%2Fgraphql-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-python%2Fgraphql-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-python%2Fgraphql-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/graphql-python","download_url":"https://codeload.github.com/graphql-python/graphql-core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-python%2Fgraphql-core/sbom","scorecard":{"id":443903,"data":{"date":"2025-08-11","repo":{"name":"github.com/graphql-python/graphql-core","commit":"fa8f9b509d557341c033ef6d05884e2683cc7ed9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/benchmark.yml:1","Warn: no topLevel permission defined: .github/workflows/lint.yml:1","Warn: no topLevel permission defined: .github/workflows/publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":10,"reason":"19 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Code-Review","score":1,"reason":"Found 3/30 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/benchmark.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/benchmark.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/benchmark.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/benchmark.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/benchmark.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/benchmark.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/lint.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/lint.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/graphql-python/graphql-core/test.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/lint.yml:20","Warn: pipCommand not pinned by hash: .github/workflows/lint.yml:21","Warn: pipCommand not pinned by hash: .github/workflows/publish.yml:23","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:48","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:49","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   7 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/publish.yml:9"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 3 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":3,"reason":"7 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2022-42969","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: GHSA-34jh-p97f-mpxf","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: GHSA-48p4-8xcf-vxj5","Warn: Project is vulnerable to: GHSA-jfmj-5v4g-7637"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T06:13:42.447Z","repository_id":1692096,"created_at":"2025-08-19T06:13:42.447Z","updated_at":"2025-08-19T06:13:42.447Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34023497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","graphene","graphql","graphql-core","graphql-js","graphql-python","python","python-3"],"created_at":"2024-07-31T22:00:32.218Z","updated_at":"2026-06-11T23:00:43.084Z","avatar_url":"https://github.com/graphql-python.png","language":"Python","funding_links":["https://github.com/sponsors/cito"],"categories":["Libraries","Python","Implementations","GraphQL Utilities"],"sub_categories":["Python Libraries","Python"],"readme":"# GraphQL-core 3\n\nGraphQL-core 3 is a Python 3.7+ port of [GraphQL.js](https://github.com/graphql/graphql-js),\nthe JavaScript reference implementation for [GraphQL](https://graphql.org/),\na query language for APIs created by Facebook.\n\n[![PyPI version](https://badge.fury.io/py/graphql-core.svg)](https://badge.fury.io/py/graphql-core)\n[![Documentation Status](https://readthedocs.org/projects/graphql-core-3/badge/)](https://graphql-core-3.readthedocs.io)\n[![Test Status](https://github.com/graphql-python/graphql-core/actions/workflows/test.yml/badge.svg)](https://github.com/graphql-python/graphql-core/actions/workflows/test.yml)\n[![Lint Status](https://github.com/graphql-python/graphql-core/actions/workflows/lint.yml/badge.svg)](https://github.com/graphql-python/graphql-core/actions/workflows/lint.yml)\n[![CodSpeed](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/graphql-python/graphql-core)\n[![Code style](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)\n\nAn extensive test suite with over 3000 unit tests and 100% coverage replicates the\ncomplete test suite of GraphQL.js, ensuring that this port is reliable and compatible\nwith GraphQL.js.\n\nThe current stable version 3.2.11 of GraphQL-core is up-to-date with GraphQL.js\nversion 16.14.1 and supports Python versions 3.7 to 3.14.\n\nYou can also try out the latest beta version 3.3.0b0 of GraphQL-core,\nwhich is up-to-date with GraphQL.js version 17.0.0b0.\nThis new minor version of GraphQL-core also supports Python versions 3.10 to 3.14.\n\nNote that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.\nChanges in the major version of GraphQL.js are reflected in the minor version of\nGraphQL-core instead. This means there can be breaking changes in the API\nwhen the minor version changes, and only patch releases are fully backward compatible.\nTherefore, we recommend using something like `~= 3.2.0` as the version specifier\nwhen including GraphQL-core as a dependency.\n\n## Documentation\n\nMore detailed documentation for GraphQL-core 3 can be found at\n[graphql-core-3.readthedocs.io](https://graphql-core-3.readthedocs.io/).\n\nThe documentation for GraphQL.js can be found at [graphql.org/graphql-js/](https://graphql.org/graphql-js/).\n\nThe documentation for GraphQL itself can be found at [graphql.org](https://graphql.org/).\n\nThere will be also [blog articles](https://cito.github.io/tags/graphql/) with more usage\nexamples.\n\n\n## Getting started\n\nA general overview of GraphQL is available in the\n[README](https://github.com/graphql/graphql-spec/blob/main/README.md) for the\n[Specification for GraphQL](https://github.com/graphql/graphql-spec). This overview\nincludes a simple set of GraphQL examples that are also available as [tests](tests)\nin this repository. A good way to get started with this repository is to walk through\nthat README and the corresponding tests in parallel.\n\n\n## Installation\n\nGraphQL-core 3 can be installed from PyPI using the built-in pip command:\n\n```sh\npython -m pip install graphql-core\n```\n\nOr, if you prefer [uv](https://github.com/astral-sh/uv):\n\n```sh\nuv pip install graphql-core\n```\n\n\n## Usage\n\nGraphQL-core provides two important capabilities: building a type schema and\nserving queries against that type schema.\n\nFirst, build a GraphQL type schema which maps to your codebase:\n\n```python\nfrom graphql import (\n    GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString)\n\nschema = GraphQLSchema(\n    query=GraphQLObjectType(\n        name='RootQueryType',\n        fields={\n            'hello': GraphQLField(\n                GraphQLString,\n                resolve=lambda obj, info: 'world')\n        }))\n```\n\nThis defines a simple schema, with one type and one field, that resolves to a fixed\nvalue. The `resolve` function can return a value, a co-routine object or a list of\nthese. It takes two positional arguments; the first one provides the root or the\nresolved parent field, the second one provides a `GraphQLResolveInfo` object which\ncontains information about the execution state of the query, including a `context`\nattribute holding per-request state such as authentication information or database\nsession. Any GraphQL arguments are passed to the `resolve` functions as individual\nkeyword arguments.\n\nNote that the signature of the resolver functions is a bit different in GraphQL.js,\nwhere the context is passed separately and arguments are passed as a single object.\nAlso note that GraphQL fields must be passed as a `GraphQLField` object explicitly.\nSimilarly, GraphQL arguments must be passed as `GraphQLArgument` objects.\n\nA more complex example is included in the top-level [tests](tests) directory.\n\nThen, serve the result of a query against that type schema.\n\n```python\nfrom graphql import graphql_sync\n\nsource = '{ hello }'\n\nprint(graphql_sync(schema, source))\n```\n\nThis runs a query fetching the one field defined, and then prints the result:\n\n```python\nExecutionResult(data={'hello': 'world'}, errors=None)\n```\n\nThe `graphql_sync` function will first ensure the query is syntactically and\nsemantically valid before executing it, reporting errors otherwise.\n\n```python\nfrom graphql import graphql_sync\n\nsource = '{ BoyHowdy }'\n\nprint(graphql_sync(schema, source))\n```\n\nBecause we queried a non-existing field, we will get the following result:\n\n```python\nExecutionResult(data=None, errors=[GraphQLError(\n    \"Cannot query field 'BoyHowdy' on type 'RootQueryType'.\",\n    locations=[SourceLocation(line=1, column=3)])])\n```\n\nThe `graphql_sync` function assumes that all resolvers return values synchronously.\nBy  using coroutines as resolvers, you can also create results in an asynchronous\nfashion with the `graphql` function.\n\n```python\nimport asyncio\nfrom graphql import (\n    graphql, GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString)\n\n\nasync def resolve_hello(obj, info):\n    await asyncio.sleep(3)\n    return 'world'\n\nschema = GraphQLSchema(\n    query=GraphQLObjectType(\n        name='RootQueryType',\n        fields={\n            'hello': GraphQLField(\n                GraphQLString,\n                resolve=resolve_hello)\n        }))\n\n\nasync def main():\n    query = '{ hello }'\n    print('Fetching the result...')\n    result = await graphql(schema, query)\n    print(result)\n\n\nasyncio.run(main())\n```\n\n\n## Goals and restrictions\n\nGraphQL-core aims to reproduce the code of the reference implementation GraphQL.js\nin Python as closely as possible while staying up-to-date with the latest development\nof GraphQL.js.\n\nGraphQL-core 3 (formerly known as GraphQL-core-next) was created as a modern\nalternative to [GraphQL-core 2](https://github.com/graphql-python/graphql-core-legacy),\na prior work by Syrus Akbary based on an older version of GraphQL.js that still\nsupported legacy Python versions. While some parts of GraphQL-core 3 were inspired by\nGraphQL-core 2 or directly taken over with slight modifications, most of the code has\nbeen re-implemented from scratch. This re-implementation closely replicates the latest\ncode in GraphQL.js and adds type hints for Python.\n\nDesign goals for the GraphQL-core 3 library were:\n\n* to be a simple, cruft-free, state-of-the-art GraphQL implementation for current\n  Python versions\n* to be very close to the GraphQL.js reference implementation, while still providing\n  a Pythonic API and code style\n* to make extensive use of Python type hints, similar to how GraphQL.js used Flow\n  (and is now using TypeScript)\n* to use [black](https://github.com/ambv/black) to achieve a consistent code style\n  while saving time and mental energy for more important matters\n  (we are now using [ruff](https://github.com/astral-sh/ruff) instead)\n* to replicate the complete Mocha-based test suite of GraphQL.js\n  using [pytest](https://docs.pytest.org/)\n  with [pytest-describe](https://pypi.org/project/pytest-describe/)\n\nSome restrictions (mostly in line with the design goals):\n\n* requires Python 3.6 or newer (Python 3.7 and newer in latest version)\n* does not support some already deprecated methods and options of GraphQL.js\n* supports asynchronous operations only via async.io\n  (does not support the additional executors in GraphQL-core)\n\nNote that meanwhile we are using the amazing [ruff](https://docs.astral.sh/ruff/) tool\nto both format and check the code of GraphQL-core 3,\nin addition to using [mypy](https://mypy-lang.org/) as type checker.\n\n\n## Integration with other libraries and roadmap\n\n* [Graphene](http://graphene-python.org/) is a more high-level framework for building\n  GraphQL APIs in Python, and there is already a whole ecosystem of libraries, server\n  integrations and tools built on top of Graphene. Most of this Graphene ecosystem has\n  also been created by Syrus Akbary, who meanwhile has handed over the maintenance\n  and future development to members of the GraphQL-Python community.\n\n  Graphene 3 is now using Graphql-core 3 as core library for much of the heavy lifting.\n\n* [Ariadne](https://github.com/mirumee/ariadne) is a Python library for implementing\n  GraphQL servers using schema-first approach created by Mirumee Software.\n\n  Ariadne is also using GraphQL-core 3 as its GraphQL implementation.\n\n* [Strawberry](https://github.com/strawberry-graphql/strawberry), created by Patrick\n  Arminio, is a new GraphQL library for Python 3, inspired by dataclasses,\n  that is also using GraphQL-core 3 as underpinning.\n\n* [Typed GraphQL](https://github.com/willemt/typed-graphql), thin layer over GraphQL-core that uses native Python types for creating GraphQL schemas.\n\n\n## Changelog\n\nChanges are tracked as\n[GitHub releases](https://github.com/graphql-python/graphql-core/releases).\n\n\n## Credits and history\n\nThe GraphQL-core 3 library\n\n* has been created and is maintained by Christoph Zwerschke\n* uses ideas and code from GraphQL-core 2, a prior work by Syrus Akbary\n* is a Python port of GraphQL.js which has been developed by Lee Byron and others\n  at Facebook, Inc. and is now maintained\n  by the [GraphQL foundation](https://gql.foundation/join/)\n\nPlease watch the recording of Lee Byron's short keynote on the\n[history of GraphQL](https://www.youtube.com/watch?v=VjHWkBr3tjI)\nat the open source leadership summit 2019 to better understand\nhow and why GraphQL was created at Facebook and then became open sourced\nand ported to many different programming languages.\n\n\n## License\n\nGraphQL-core 3 is\n[MIT-licensed](./LICENSE),\njust like GraphQL.js.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphql-python%2Fgraphql-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraphql-python%2Fgraphql-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphql-python%2Fgraphql-core/lists"}