Open Source Pioneer Bruce Perens: Facebook's New GraphQL License Too Restrictive

Less than a week ago, I published an opinion that the uncertainty around Facebook's plans for licensing the GraphQL API specfication meant it was time to halt all GraphQL API development until Facebook was more forthcoming about its intentions. That analysis was published in the wake of some significant controversy surrounding Facebook's choice to license its React Framework using a license called BSD+Patents. There is a BSD+Patents license listed as one of the official open source licenses that's endorsed by the Open Source Initiative. However, Facebook's patent grant that went with the license was deemed to be too restrictive such that two influenctial members of the open source community -- the Apache Software Foundation and Wordpress founer Matt Mullengweg -- openly rejected it. 

Facebook capitulated, ditched the BSD+Patents license and instead went with the more permissive MIT license. But the decision was not universal to all of Facebook's open technologies. One technology that was still in limbo was GraphQL. GraphQL is an API specification that I often refer to as "neither fish nor fowl." Earlier this year, Facebook's Lee Byron, the inventor of GraphQL, explained to me that it was inspired by work found in other API technologies such as RESTful HTTP APIs (aka "Web APIs"), RPC APIs (eg: XML-RPC), and Apache's Thrift. As an alternative to your typical HTTP RESTful API, many organizations are experimenting with GraphQL and while Facebook itself doesn't offer a public GraphQL-based API Endpoint, other organizations like Github and Yelp do.

Until yesterday, the issue with GraphQL was that the world was in licensing limbo waiting for Facebook to decide how its going to license them. In other words, anyone who was developing GraphQL-based APIs was taking a risk of violating whatever license Facebook finally settled on for GraphQL. Then, yesterday, Facebook announced that it would license them under a license known as the Open Web Foundation Agreement (OWFa) 1.0. Attorney Dennis Walsh who originally flagged the patent issue with respect to GraphQL licensing hailed the decision in an update to his original post (see Using GraphQL? Why Facebook Used To Own You). Wrote Walsh, "Facebook relicensed the GraphQL spec to OWFa 1.0. This is tremendous news, and in my opinion, the right move. I feel comfortable recommending GraphQL for all uses."

However not everyone agrees and one person who says that the OWFa 1.0 license is still too restrictive when it comes to adopting GraphQL is Bruce Perens, one of the co-founders of the open source software movement and the original author of the official open source definition. In my interview of Perens, he points out that there's a proviso in section 8.6 that deems implementations of GraphQL as compliant "so long as all required portions of the Specification are implemented." In other words, if you find something in the specification that you don't need for your implementation and you leave it out, you've also lost your license to use the spec. According to Perens, there's a "middle ground" that Facebook should try instead. I've reached out to Facebook and am still awaiting comment. In the mean time, watch the interview, or, if you prefer, you can listen to or download the audio version as well.

Video Interview of Bruce Perens Regarding GraphQL Licensing

Editor's Note: This and other original video content (interviews, demos, etc.) from ProgrammableWeb can also be found on ProgrammableWeb's YouTube Channel

Audio-Only Version of Interview of Bruce Perens Regarding GraphQL Licensing

Editor's note: ProgrammableWeb has started a podcast called ProgrammableWeb Radio. To subscribe to the podcast with an iPhone, go to ProgrammableWeb's iTunes channel. To subscribe via Google Play Music, go to our Google Play Music channel. Or point your podcatcher to our SoundCloud RSS feed or tune into our station on SoundCloud.

Tune into the ProgrammableWeb Radio Podcast on Google Play Music  Tune into the ProgrammableWeb Radio Podcast on Apple iTunes  Tune into the ProgrammableWeb Radio Podcast on SoundCloud

Be sure to read the next Law article: Daily API RoundUp: Open Policy Agent, Voog, CreatorIQ, AddEvent