Ariadne 0.9.0
Today we are releasing Ariadne 0.9 which moves from GraphQL-core-next to GraphQL-core v3 as its GraphQL implementation.
About GraphQL Core and Core Next
Lets start with little history first. Both GraphQL-core and GraphQL-core-next are Python ports of reference GraphQL implementation, graphql.js
. Key bit of difference between the two is the time at which they were developed, and thus Python features they support.
GraphQL-core has started its life back in 2015 and supports Python 2.7, while work on GraphQL-core-next begun in 2018 and from day one it required Python 3.6 or 3.7 to work. It also supported then-new asyncio
for improved query execution performance and proper dataloader pattern implementation in place of promises. It also had fully-typed codebase which made it much easier for us to reason about its codebase and develop custom abstractions on top of it.
GraphQL-core was most famously used to build Graphene framework, which GraphQL-core-next has found wide use amongst the "new wave" of GraphQL libraries that came about in 2018.
It was always plan for GraphQL-core-next developers to eventually replace GraphQL-core as "default" Python GraphQL implementation and this has finally taken place on 30th November 2019 when GraphQL-core-next has been released as GraphQL-core 3.0.
Ariadne originally used GraphQL core for its implementation, but very quickly we've made decision to move to core-next - something we've never regretted as it enabled us to quickly adopt the new ecosystem of async web frameworks and libraries in our projects.
Upgrading to Ariadne 0.9
Because both GraphQL-core and GraphQL-core-next use the same graphql
package name, it's required for projects using Ariadne to uninstall Graphql-core-next
before upgrading their Ariadne dependency to 0.9.
CHANGELOG
- Updated
graphql-core-next
tographql-core
3.