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.
Thanks so much for considering!!
30 Likes
lukasa
(Cory Benfield)
2
This is very cool! I'm in favour of this being adopted by the SSWG.
4 Likes
ktoso
(Konrad 'ktoso' Malawski 🐟🏴☠️)
3
Great work and definitely a nice addition!
Thank you for the pitch! Let's do a formal proposal and get it through the process 
Details here: https://github.com/swift-server/sswg/blob/main/process/incubation.md
Specifically refer to this bit:
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 
1 Like
tomerd
4
+1 this sounds like a great addition
Awesome, thanks for the feedback! I'll get the formal proposal process started 
2 Likes
Awesome, I've created a formal proposal in github. @ksoto, please reach out to me with any input or suggestions
. Thanks again!
1 Like
ktoso
(Konrad 'ktoso' Malawski 🐟🏴☠️)
7
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?
cc @server-workgroup
1 Like
ktoso
(Konrad 'ktoso' Malawski 🐟🏴☠️)
8
Ah, one thing, we thought that it's probably worth pitching the GitHub - GraphQLSwift/Graphiti: The Swift GraphQL Schema framework for macOS and Linux library together with this, as they kind of go hand in hand, right? WDYT?
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.
1 Like
0xTim
(Tim)
9
+1 from me - I think this library would be a valuable addition to the incubation process and for the ecosystem.
Also agree that Graphiti should probably be bundled in with the same proposal
2 Likes
+1 from me as well
This is a great addition to the ecosystem.
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.
2 Likes
Awesome, thanks for the support guys! I've updated the proposal to include Graphiti as well.
ktoso
(Konrad 'ktoso' Malawski 🐟🏴☠️)
12
Looking good, let’s kick off the review on Monday :-) I’ll handle be the review manager and post that thread 
1 Like
ktoso
(Konrad 'ktoso' Malawski 🐟🏴☠️)
13
Review thread has been kicked off: SSWG-0019: GraphQL & Graphiti
1 Like