Skip to content

Commit c7c9674

Browse files
authored
Add link to gateway performance benchmarks (#187)
1 parent 8e42225 commit c7c9674

File tree

15 files changed

+317
-65
lines changed

15 files changed

+317
-65
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ This repository contains a set of tests to evaluate and compare the compatibilit
1111
| Gateway | Compatibility | Test Cases | Test Suites |
1212
| :-------------------------------------------------------------: | :-----------: | :----------: | :---------: |
1313
| [Hive Gateway](https://the-guild.dev/graphql/hive/docs/gateway) | 100.00% | 🟢 189 | 🟢 42 |
14+
| [Hive Router](https://github.com/graphql-hive/router) | 100.00% | 🟢 189 | 🟢 42 |
1415
| [Apollo Router](https://www.apollographql.com/) | 97.88% | 🟢 185 ❌ 4 | 🟢 40 ❌ 2 |
1516
| [Apollo Gateway](https://www.apollographql.com/) | 97.35% | 🟢 184 ❌ 5 | 🟢 39 ❌ 3 |
16-
| [Cosmo Router](https://wundergraph.com) | 94.71% | 🟢 17910 | 🟢 366 |
17-
| [Grafbase Gateway](https://grafbase.com) | 90.48% | 🟢 17118 | 🟢 35 ❌ 7 |
17+
| [Grafbase Gateway](https://grafbase.com) | 92.06% | 🟢 17415 | 🟢 375 |
18+
| [Cosmo Router](https://wundergraph.com) | 91.01% | 🟢 17217 | 🟢 35 ❌ 7 |
1819
| [Inigo Gateway](https://inigo.io) | 48.68% | 🟢 92 ❌ 97 | 🟢 12 ❌ 30 |
1920

2021
<!-- gateways:end -->

REPORT.md

Lines changed: 123 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
| Gateway | Compatibility | Test Cases | Test Suites |
66
| :-------------------------------------------------------------: | :-----------: | :----------: | :---------: |
77
| [Hive Gateway](https://the-guild.dev/graphql/hive/docs/gateway) | 100.00% | 🟢 189 | 🟢 42 |
8+
| [Hive Router](https://github.com/graphql-hive/router) | 100.00% | 🟢 189 | 🟢 42 |
89
| [Apollo Router](https://www.apollographql.com/) | 97.88% | 🟢 185 ❌ 4 | 🟢 40 ❌ 2 |
910
| [Apollo Gateway](https://www.apollographql.com/) | 97.35% | 🟢 184 ❌ 5 | 🟢 39 ❌ 3 |
10-
| [Cosmo Router](https://wundergraph.com) | 94.71% | 🟢 17910 | 🟢 366 |
11-
| [Grafbase Gateway](https://grafbase.com) | 90.48% | 🟢 17118 | 🟢 35 ❌ 7 |
11+
| [Grafbase Gateway](https://grafbase.com) | 92.06% | 🟢 17415 | 🟢 375 |
12+
| [Cosmo Router](https://wundergraph.com) | 91.01% | 🟢 17217 | 🟢 35 ❌ 7 |
1213
| [Inigo Gateway](https://inigo.io) | 48.68% | 🟢 92 ❌ 97 | 🟢 12 ❌ 30 |
1314

1415
## Detailed Results
@@ -112,12 +113,12 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
112113
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
113114
</details>
114115

115-
<a id="apollo-router"></a>
116+
<a id="hive-router"></a>
116117

117-
### Apollo Router
118+
### Hive Router
118119

119-
- [Repository](https://github.com/apollographql/router)
120-
- [Website](https://www.apollographql.com/)
120+
- [Repository](https://github.com/graphql-hive/router)
121+
- [Website](https://github.com/graphql-hive/router)
121122

122123
<details>
123124
<summary>Results</summary>
@@ -152,7 +153,7 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
152153
<a href="./src/test-suites/interface-object-with-requires">interface-object-with-requires</a>
153154
<pre>🟢🟢🟢🟢🟢🟢🟢</pre>
154155
<a href="./src/test-suites/keys-mashup">keys-mashup</a>
155-
<pre></pre>
156+
<pre>🟢</pre>
156157
<a href="./src/test-suites/mutations">mutations</a>
157158
<pre>🟢🟢🟢🟢</pre>
158159
<a href="./src/test-suites/mysterious-external">mysterious-external</a>
@@ -182,7 +183,7 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
182183
<a href="./src/test-suites/requires-requires">requires-requires</a>
183184
<pre>🟢🟢🟢🟢🟢</pre>
184185
<a href="./src/test-suites/requires-with-argument">requires-with-argument</a>
185-
<pre>🟢🟢❌❌❌</pre>
186+
<pre>🟢🟢🟢🟢🟢</pre>
186187
<a href="./src/test-suites/requires-with-fragments">requires-with-fragments</a>
187188
<pre>🟢🟢🟢🟢🟢🟢</pre>
188189
<a href="./src/test-suites/shared-root">shared-root</a>
@@ -207,11 +208,11 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
207208
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
208209
</details>
209210

210-
<a id="apollo-gateway"></a>
211+
<a id="apollo-router"></a>
211212

212-
### Apollo Gateway
213+
### Apollo Router
213214

214-
- [Repository](https://github.com/apollographql/federation)
215+
- [Repository](https://github.com/apollographql/router)
215216
- [Website](https://www.apollographql.com/)
216217

217218
<details>
@@ -257,7 +258,7 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
257258
<a href="./src/test-suites/node">node</a>
258259
<pre>🟢</pre>
259260
<a href="./src/test-suites/non-resolvable-interface-object">non-resolvable-interface-object</a>
260-
<pre>🟢🟢🟢🟢🟢🟢</pre>
261+
<pre>🟢🟢🟢🟢🟢🟢🟢</pre>
261262
<a href="./src/test-suites/null-keys">null-keys</a>
262263
<pre>🟢</pre>
263264
<a href="./src/test-suites/override-type-interface">override-type-interface</a>
@@ -302,23 +303,23 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
302303
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
303304
</details>
304305

305-
<a id="cosmo-router"></a>
306+
<a id="apollo-gateway"></a>
306307

307-
### Cosmo Router
308+
### Apollo Gateway
308309

309-
- [Repository](https://github.com/wundergraph/cosmo)
310-
- [Website](https://wundergraph.com)
310+
- [Repository](https://github.com/apollographql/federation)
311+
- [Website](https://www.apollographql.com/)
311312

312313
<details>
313314
<summary>Results</summary>
314315
<a href="./src/test-suites/abstract-types">abstract-types</a>
315316
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
316317
<a href="./src/test-suites/child-type-mismatch">child-type-mismatch</a>
317-
<pre>❌❌❌🟢</pre>
318+
<pre>🟢🟢🟢🟢</pre>
318319
<a href="./src/test-suites/circular-reference-interface">circular-reference-interface</a>
319320
<pre>🟢🟢</pre>
320321
<a href="./src/test-suites/complex-entity-call">complex-entity-call</a>
321-
<pre></pre>
322+
<pre>🟢</pre>
322323
<a href="./src/test-suites/corrupted-supergraph-node-id">corrupted-supergraph-node-id</a>
323324
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
324325
<a href="./src/test-suites/enum-intersection">enum-intersection</a>
@@ -338,11 +339,11 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
338339
<a href="./src/test-suites/input-object-intersection">input-object-intersection</a>
339340
<pre>🟢🟢🟢</pre>
340341
<a href="./src/test-suites/interface-object-indirect-extension">interface-object-indirect-extension</a>
341-
<pre></pre>
342+
<pre>🟢</pre>
342343
<a href="./src/test-suites/interface-object-with-requires">interface-object-with-requires</a>
343344
<pre>🟢🟢🟢🟢🟢🟢🟢</pre>
344345
<a href="./src/test-suites/keys-mashup">keys-mashup</a>
345-
<pre>🟢</pre>
346+
<pre></pre>
346347
<a href="./src/test-suites/mutations">mutations</a>
347348
<pre>🟢🟢🟢🟢</pre>
348349
<a href="./src/test-suites/mysterious-external">mysterious-external</a>
@@ -352,7 +353,7 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
352353
<a href="./src/test-suites/node">node</a>
353354
<pre>🟢</pre>
354355
<a href="./src/test-suites/non-resolvable-interface-object">non-resolvable-interface-object</a>
355-
<pre>🟢🟢🟢🟢🟢🟢🟢</pre>
356+
<pre>🟢🟢🟢🟢🟢🟢</pre>
356357
<a href="./src/test-suites/null-keys">null-keys</a>
357358
<pre>🟢</pre>
358359
<a href="./src/test-suites/override-type-interface">override-type-interface</a>
@@ -362,17 +363,17 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
362363
<a href="./src/test-suites/parent-entity-call">parent-entity-call</a>
363364
<pre>🟢</pre>
364365
<a href="./src/test-suites/parent-entity-call-complex">parent-entity-call-complex</a>
365-
<pre></pre>
366+
<pre>🟢</pre>
366367
<a href="./src/test-suites/provides-on-interface">provides-on-interface</a>
367-
<pre>❌❌</pre>
368+
<pre>🟢🟢</pre>
368369
<a href="./src/test-suites/provides-on-union">provides-on-union</a>
369-
<pre>❌❌</pre>
370+
<pre>🟢🟢</pre>
370371
<a href="./src/test-suites/requires-interface">requires-interface</a>
371372
<pre>🟢🟢🟢🟢🟢</pre>
372373
<a href="./src/test-suites/requires-requires">requires-requires</a>
373374
<pre>🟢🟢🟢🟢🟢</pre>
374375
<a href="./src/test-suites/requires-with-argument">requires-with-argument</a>
375-
<pre>🟢🟢🟢🟢🟢</pre>
376+
<pre>🟢🟢❌❌❌</pre>
376377
<a href="./src/test-suites/requires-with-fragments">requires-with-fragments</a>
377378
<pre>🟢🟢🟢🟢🟢🟢</pre>
378379
<a href="./src/test-suites/shared-root">shared-root</a>
@@ -439,7 +440,7 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
439440
<a href="./src/test-suites/keys-mashup">keys-mashup</a>
440441
<pre>🟢</pre>
441442
<a href="./src/test-suites/mutations">mutations</a>
442-
<pre>🟢🟢🟢</pre>
443+
<pre>🟢🟢🟢🟢</pre>
443444
<a href="./src/test-suites/mysterious-external">mysterious-external</a>
444445
<pre>🟢🟢</pre>
445446
<a href="./src/test-suites/nested-provides">nested-provides</a>
@@ -459,7 +460,7 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
459460
<a href="./src/test-suites/parent-entity-call-complex">parent-entity-call-complex</a>
460461
<pre>🟢</pre>
461462
<a href="./src/test-suites/provides-on-interface">provides-on-interface</a>
462-
<pre>❌❌</pre>
463+
<pre>🟢🟢</pre>
463464
<a href="./src/test-suites/provides-on-union">provides-on-union</a>
464465
<pre>🟢🟢</pre>
465466
<a href="./src/test-suites/requires-interface">requires-interface</a>
@@ -492,6 +493,101 @@ You can look at the full list of tests [here](./src/test-suites/). Every test id
492493
<pre>🟢🟢🟢🟢🟢🟢🟢🟢❌🟢🟢❌</pre>
493494
</details>
494495

496+
<a id="cosmo-router"></a>
497+
498+
### Cosmo Router
499+
500+
- [Repository](https://github.com/wundergraph/cosmo)
501+
- [Website](https://wundergraph.com)
502+
503+
<details>
504+
<summary>Results</summary>
505+
<a href="./src/test-suites/abstract-types">abstract-types</a>
506+
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
507+
<a href="./src/test-suites/child-type-mismatch">child-type-mismatch</a>
508+
<pre>❌❌❌🟢</pre>
509+
<a href="./src/test-suites/circular-reference-interface">circular-reference-interface</a>
510+
<pre>🟢🟢</pre>
511+
<a href="./src/test-suites/complex-entity-call">complex-entity-call</a>
512+
<pre>❌</pre>
513+
<a href="./src/test-suites/corrupted-supergraph-node-id">corrupted-supergraph-node-id</a>
514+
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
515+
<a href="./src/test-suites/enum-intersection">enum-intersection</a>
516+
<pre>🟢🟢🟢🟢🟢</pre>
517+
<a href="./src/test-suites/fed1-external-extends">fed1-external-extends</a>
518+
<pre>🟢🟢🟢🟢</pre>
519+
<a href="./src/test-suites/fed1-external-extends-resolvable">fed1-external-extends-resolvable</a>
520+
<pre>🟢</pre>
521+
<a href="./src/test-suites/fed1-external-extension">fed1-external-extension</a>
522+
<pre>🟢🟢🟢🟢</pre>
523+
<a href="./src/test-suites/fed2-external-extends">fed2-external-extends</a>
524+
<pre>🟢🟢🟢🟢</pre>
525+
<a href="./src/test-suites/fed2-external-extension">fed2-external-extension</a>
526+
<pre>🟢🟢🟢🟢</pre>
527+
<a href="./src/test-suites/include-skip">include-skip</a>
528+
<pre>🟢🟢🟢🟢</pre>
529+
<a href="./src/test-suites/input-object-intersection">input-object-intersection</a>
530+
<pre>🟢🟢🟢</pre>
531+
<a href="./src/test-suites/interface-object-indirect-extension">interface-object-indirect-extension</a>
532+
<pre>❌</pre>
533+
<a href="./src/test-suites/interface-object-with-requires">interface-object-with-requires</a>
534+
<pre>❌❌❌❌❌❌❌</pre>
535+
<a href="./src/test-suites/keys-mashup">keys-mashup</a>
536+
<pre>🟢</pre>
537+
<a href="./src/test-suites/mutations">mutations</a>
538+
<pre>🟢🟢🟢🟢</pre>
539+
<a href="./src/test-suites/mysterious-external">mysterious-external</a>
540+
<pre>🟢🟢</pre>
541+
<a href="./src/test-suites/nested-provides">nested-provides</a>
542+
<pre>🟢🟢</pre>
543+
<a href="./src/test-suites/node">node</a>
544+
<pre>🟢</pre>
545+
<a href="./src/test-suites/non-resolvable-interface-object">non-resolvable-interface-object</a>
546+
<pre>🟢🟢🟢🟢🟢🟢🟢</pre>
547+
<a href="./src/test-suites/null-keys">null-keys</a>
548+
<pre>🟢</pre>
549+
<a href="./src/test-suites/override-type-interface">override-type-interface</a>
550+
<pre>🟢🟢🟢🟢</pre>
551+
<a href="./src/test-suites/override-with-requires">override-with-requires</a>
552+
<pre>🟢🟢🟢🟢</pre>
553+
<a href="./src/test-suites/parent-entity-call">parent-entity-call</a>
554+
<pre>🟢</pre>
555+
<a href="./src/test-suites/parent-entity-call-complex">parent-entity-call-complex</a>
556+
<pre>❌</pre>
557+
<a href="./src/test-suites/provides-on-interface">provides-on-interface</a>
558+
<pre>❌❌</pre>
559+
<a href="./src/test-suites/provides-on-union">provides-on-union</a>
560+
<pre>❌❌</pre>
561+
<a href="./src/test-suites/requires-interface">requires-interface</a>
562+
<pre>🟢🟢🟢🟢🟢</pre>
563+
<a href="./src/test-suites/requires-requires">requires-requires</a>
564+
<pre>🟢🟢🟢🟢🟢</pre>
565+
<a href="./src/test-suites/requires-with-argument">requires-with-argument</a>
566+
<pre>🟢🟢🟢🟢🟢</pre>
567+
<a href="./src/test-suites/requires-with-fragments">requires-with-fragments</a>
568+
<pre>🟢🟢🟢🟢🟢🟢</pre>
569+
<a href="./src/test-suites/shared-root">shared-root</a>
570+
<pre>🟢🟢</pre>
571+
<a href="./src/test-suites/simple-entity-call">simple-entity-call</a>
572+
<pre>🟢</pre>
573+
<a href="./src/test-suites/simple-inaccessible">simple-inaccessible</a>
574+
<pre>🟢🟢🟢🟢</pre>
575+
<a href="./src/test-suites/simple-interface-object">simple-interface-object</a>
576+
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
577+
<a href="./src/test-suites/simple-override">simple-override</a>
578+
<pre>🟢🟢</pre>
579+
<a href="./src/test-suites/simple-requires-provides">simple-requires-provides</a>
580+
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
581+
<a href="./src/test-suites/typename">typename</a>
582+
<pre>🟢🟢🟢🟢🟢🟢</pre>
583+
<a href="./src/test-suites/unavailable-override">unavailable-override</a>
584+
<pre>🟢🟢</pre>
585+
<a href="./src/test-suites/union-interface-distributed">union-interface-distributed</a>
586+
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
587+
<a href="./src/test-suites/union-intersection">union-intersection</a>
588+
<pre>🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢</pre>
589+
</details>
590+
495591
<a id="inigo-gateway"></a>
496592

497593
### Inigo Gateway

gateways/apollo-router/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# https://github.com/apollographql/router/releases
2-
curl -sSL https://router.apollo.dev/download/nix/v2.4.0 | sh
2+
curl -sSL https://router.apollo.dev/download/nix/v2.6.0 | sh

gateways/cosmo-router/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ set -u
88
BINARY_DOWNLOAD_PREFIX="https://github.com/wundergraph/cosmo/releases/download"
99

1010
# https://github.com/wundergraph/cosmo/releases
11-
DOWNLOAD_VERSION="0.233.0"
11+
DOWNLOAD_VERSION="0.247.0"
1212

1313
download_binary() {
1414
downloader --check

gateways/cosmo-router/results.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ input-object-intersection
2727
interface-object-indirect-extension
2828
X
2929
interface-object-with-requires
30-
.......
30+
XXXXXXX
3131
keys-mashup
3232
.
3333
mutations
@@ -85,5 +85,5 @@ union-intersection
8585

8686
---
8787
Total: 189
88-
Passed: 179
89-
Failed: 10
88+
Passed: 172
89+
Failed: 17

gateways/grafbase-gateway/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -euo pipefail
55
# to the current directory instead of /usr/local/bin
66

77
# https://github.com/grafbase/grafbase/releases
8-
VERSION="0.43.2"
8+
VERSION="0.48.1"
99

1010
error() {
1111
echo -e "${Red}error${Color_Off}:" "$@" >&2

gateways/grafbase-gateway/results.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ interface-object-with-requires
3131
keys-mashup
3232
.
3333
mutations
34-
...X
34+
....
3535
mysterious-external
3636
..
3737
nested-provides
@@ -51,7 +51,7 @@ parent-entity-call
5151
parent-entity-call-complex
5252
.
5353
provides-on-interface
54-
XX
54+
..
5555
provides-on-union
5656
..
5757
requires-interface
@@ -85,5 +85,5 @@ union-intersection
8585

8686
---
8787
Total: 189
88-
Passed: 171
89-
Failed: 18
88+
Passed: 174
89+
Failed: 15

gateways/hive-gateway/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# https://github.com/graphql-hive/gateway/releases
2-
curl -sSL https://graphql-hive.com/install-gateway.sh | sh -s "1.15.4"
2+
curl -sSL https://graphql-hive.com/install-gateway.sh | sh -s "1.16.3"

gateways/hive-router/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/supergraph.graphql
2+
/hive_router

gateways/hive-router/gateway.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "Hive Router",
3+
"repository": "https://github.com/graphql-hive/router",
4+
"website": "https://github.com/graphql-hive/router",
5+
"graphql": "http://127.0.0.1:4000/graphql",
6+
"health": "http://127.0.0.1:4000/health"
7+
}

0 commit comments

Comments
 (0)