Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,3 +257,7 @@ Pull requests adding either experimental or mature implementations to these list
- [graphql-java-kickstart/graphql-java-servlet](https://github.com/graphql-java-kickstart/graphql-java-servlet) (Java: [Maven](https://mvnrepository.com/artifact/com.graphql-java/graphql-java-servlet))
- [ChilliCream/hotchocolate](https://github.com/ChilliCream/hotchocolate) (C#: [NuGet](https://www.nuget.org/packages/HotChocolate))
- [async-graphql/async-graphql](https://github.com/async-graphql/async-graphql) (Rust: [Crates](https://crates.io/crates/async-graphql))

### Router / Gateway

- [wundergraph/cosmo](https://github.com/wundergraph/cosmo)
Comment on lines +260 to +263
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intention of this Implementations section is to:

  • Show open source code examples of implementations of this spec. This is why the link to the GitHub repo containing the implementation code, and listing the programming language of the implementation, is required.
  • List key open source packages that can be used to implement this spec. This is why links to the specific published packages are required.

We don't attempt to link to the thousands? of products that generally make use of GraphQL file uploads, as:

  • Linking them all is impossible.
  • Showing arbitrary favouritism to a selection isn't fair.
  • It's not helpful to programmers looking for code examples to implement the spec.

In this section, "clients" are code that sends a request, and "servers" are code that receives a request.

With all that in mind, we can figure out the correct way to list the WunderGraph Cosmo client and server implementations of this spec.

If Cosmo has both a client and server implementation, those will be listed individually in the Client and Server subsections.

For each of the client and server implementations:

  • What is the GitHub repo holding the actual implementation code?
  • What programming language is it written in?
  • What is the package closest to the actual implementation code that is published? We are not intending to list high level packages that compose the actual implementation packages.

Having glanced at the Cosmo PR that first implemented GraphQL file uploads (https://github.com/wundergraph/cosmo/pull/772/files), here is my rough understanding as a starting point:

Client

Server

I'm not really familiar with how Go packages are named and published to know the best way to link to the published packages for the server and client implementations.

If you have a monorepo and/or the server and client implementations are the exact same package, it's ok we list the same content twice in the Client and Server subsections.