I'd like to pitch the GraphQLSwift organization's GraphQL library to the SSWG incubation process. This library is a Swift port of the JavaScript reference GraphQL implementation, written on top of Swift NIO. It provides full server-side instrumentation for defining GraphQL schemas, resolving queries, and encoding/decoding GraphQL messages.
Motivation
GraphQL is an increasingly common web API technology that improves client overfetching and reduces network communication between clients and servers.
Proposed solution
This package is already released and in use. In fact, as far as I can tell, it is the only open-source GraphQL spec implementation in Swift. All other implementations I could find are either forks or depend upon the proposed package. The repository averages about 70 clones per week, and underpins other popular server-side GraphQL packages, such as Graphiti and GraphZahl, both of which are listed in the graphql.org's Swift server language support section.
As for improvements, detailed usage documentation should be added. While the tests provide some examples, adding usage narratives in the readme would certainly be helpful.
Also, while this package defines all the primitives needed for GraphQL, constructing schemas is clunky. In fact, simplifying schema definition is the focus of many of the inheriting packages, including Graphiti. We should discuss whether the proposed GraphQL package should be modified to contain schema definition tools, or whether those overlays should be considered separately.
Proposals are submitted to the SSWG by creating a PR that adds the proposal document to the proposal directory. Proposals follow a template and include the following information: ...
I can serve as the sswg representative to shepard this proposal through the process -- if you'd need any help please reach out
One of the important questions will be which level this should be accepted as; please have a look at the requirements we list on the linked process page and let's see where this project would fit
Awesome, I skimmed the proposal and only have nitpick to clean it up -- looks good! Thank you for going through the maturity level checklist, I don't foresee any issues here
We chatted with other SSWG members and there's support for accepting the package, let's follow the process and get another formal +1 here and I'll then move this into a formal review
@0xTim or @adam-fowler want to add your +1 to meet the formal requriement to move to review phase?
I don't think we need a separate pitch, I assume it is maintained by same folks? We'd just need to add it to the * Implementation: [GraphQL](https://github.com/GraphQLSwift/GraphQL) section in the proposal.
I have had some experience working with this library and have made a few minor changes. In general it is easy to work with. I also think we should include Graphiti the schema authoring library with this pitch.