• Stars
    star
    1,707
  • Rank 26,002 (Top 0.6 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated 17 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Libraries for running GraphQL in Kotlin

GraphQL Kotlin

Continuous Integration Publish Docs Discussions Slack

GraphQL Kotlin is a collection of libraries, built on top of graphql-java, that simplify running GraphQL clients and servers in Kotlin.

Visit our documentation site for more details.

πŸ“¦ Modules

  • clients - Lightweight GraphQL Kotlin HTTP clients based on Ktor HTTP client and Spring WebClient
  • examples - Example apps that use graphql-kotlin libraries to test and demonstrate usages
  • executions - Custom instrumentations for a GraphQL operation
  • generator - Code-First schema generator and extensions to build Apollo Federation schemas
  • plugins - Gradle and Maven plugins
  • servers - Common and library specific modules for running a GraphQL server

⌨️ Usage

While all the individual modules of graphql-kotlin are published as stand-alone libraries, the most common use cases are running a server and generating a type-safe client.

Server Example

A basic example of how you can run a GraphQL server can be found on our server documentation section.

Client Example

A basic setup of a GraphQL client can be found on our client documentation section.

πŸ“‹ Documentation

More examples and documentation are available on our documentation site hosted in GitHub Pages. We also have the examples module which can be run locally for testing and shows example code using the libraries.

If you have a question about something you can not find in our documentation, the individual module READMEs, or javadocs, feel free to contribute to the docs or start a discussion and tag it with the question label.

If you would like to contribute to our documentation see the website directory for more information.

πŸ—ž Blog Posts and Videos

The Blogs & Videos page in the GraphQL Kotlin documentation links to blog posts, release announcements, conference talks about the library, and general talks about GraphQL at Expedia Group.

πŸ‘₯ Contact

This project is part of Expedia Group Open Source but also maintained by a dedicated team

If you have a specific question about the library or code, please start a discussion for the community.

We also have a public channel, (#graphql-kotlin), open on the Kotlin Slack instance (kotlinlang.slack.com). See the info here on how to join this slack instance.

✏️ Contributing

To get started, please fork the repo and checkout a new branch. You can then build the library locally with Gradle

./gradlew clean build

See more info in CONTRIBUTING.md.

After you have your local branch set up, take a look at our open issues to see where you can contribute.

πŸ›‘οΈ Security

For more info on how to contact the team for security issues or the supported versions that receive security updates, see SECURITY.md

βš–οΈ License

This library is licensed under the Apache License, Version 2.0

More Repositories

1

cyclotron

A web platform for constructing dashboards.
CoffeeScript
1,558
star
2

styx

Programmable, asynchronous, event-based reverse proxy for JVM.
Java
250
star
3

waggle-dance

Hive federation service. Enables disparate tables to be concurrently accessed across multiple Hive deployments.
Java
248
star
4

adaptive-alerting

Anomaly detection for streaming time series, featuring automated model selection.
Java
203
star
5

jenkins-spock

Unit-test Jenkins pipeline code with Spock
Groovy
184
star
6

bull

BULL - Bean Utils Light Library
Java
179
star
7

c3vis

Visualize the resource utilisation of Amazon ECS clusters
JavaScript
161
star
8

stream-registry

Stream Discovery and Stream Orchestration
Java
113
star
9

jarviz

Jarviz is dependency analysis and visualization tool designed for Java applications
Java
110
star
10

flyte

Flyte binds together the tools you use into easily defined, automated workflows
Go
88
star
11

circus-train

Circus Train is a dataset replication tool that copies Hive tables between clusters and clouds.
Java
86
star
12

kubernetes-sidecar-injector

Kuberbetes mutating webhook that injects a sidecar container to a pod
Go
74
star
13

mittens

Warm-up routine for http applications over REST and gRPC
Go
62
star
14

avro-compatibility

A user friendly API for checking for and reporting on Avro schema incompatibilities.
Java
53
star
15

expediagroup.github.io

The Expedia Group Open Source portal, a website for discovering EG open source projects.
JavaScript
52
star
16

graphql-component

Composeable graphql components
JavaScript
51
star
17

heat

Heat Test Framework
Java
45
star
18

beekeeper

Service for automatically managing and cleaning up unreferenced data
Java
45
star
19

pitchfork

Convert tracing data between Zipkin and Haystack formats
Java
43
star
20

apiary

Apiary provides modules which can be combined to create a federated cloud data lake
34
star
21

pino-rotating-file

[DEPRECATED] A pino log transport for splitting logs into separate, automatically rotating files.
JavaScript
32
star
22

github-helpers

A collection of Github Actions that simplify and standardize common CI/CD workflow tasks.
TypeScript
30
star
23

vsync

Sync Secrets between HashiCorp vaults
Go
30
star
24

rhapsody

Reactive Streams framework with support for at-least-once processing
Java
28
star
25

plunger

A unit testing framework for the Cascading data processing platform.
Java
26
star
26

javro

JSON Schema to Avro Mapper
JavaScript
26
star
27

kube-graffiti

Paint your kubernetes objects with 'mutating' webhooks
Go
26
star
28

hiveberg

Demonstration of a Hive Input Format for Iceberg
Java
25
star
29

beeju

JUnit integration for testing the Apache Hive Metastore and HiveServer2 Thrift APIs
Java
24
star
30

react-event-tracking

React shared context utilities for analytic event tracking.
JavaScript
23
star
31

expediagroup.github.io-old

Expedia Group OSS Portal
HTML
23
star
32

shunting-yard

Shunting Yard is a real-time data replication tool that copies data between Hive Metastores.
Java
20
star
33

datasqueeze

Hadoop utility to compact small files
Java
19
star
34

jasvorno

A library for strong, schema based conversion between 'natural' JSON documents and Avro
Java
18
star
35

apiary-data-lake

Terraform scripts for deploying Apiary Data Lake
HCL
17
star
36

hello-streams

hello-streams :: Introducing the stream-first mindset
Java
16
star
37

map-maker

Map maker is a command line tool and library for easily generating maps from structured data.
Jupyter Notebook
15
star
38

spinnaker-pipeline-trigger

Pipeline trigger for Spinnaker utilizing SNS
TypeScript
15
star
39

corc

An ORC File Scheme for the Cascading data processing platform.
Java
14
star
40

steerage

[DEPRECATED] Hapi server configuration and composition using confidence, topo, and shortstop.
JavaScript
14
star
41

fpsmeter

Optimized javascript utility for measuring frames per second in a browser environment. Useful for observing end-user client run-time performance without adversly impacting performance.
JavaScript
13
star
42

service-client

[DEPRECATED] A general purpose http client built with extensibility in mind. It also features lifecycle hooks, dynamic hostname resolution, and circuit breaking.
JavaScript
12
star
43

insights-explorer

Insights Explorer is a tool to catalogue and present analytical & research work.
TypeScript
12
star
44

molten

Molten is an opinionated library providing reactive tooling to simplify building production-ready integration solutions using Reactor.
Java
12
star
45

github-webhook-proxy

Request forwarder for GitHub webhooks from github.com to internal enterprise destinations, designed for use in Github Enterprise Cloud.
TypeScript
10
star
46

apiary-extensions

Extensions available for use in Apiary
Java
10
star
47

drone-fly

A service which allows Hive Metastore Listeners to be deployed outside of the Hive Metastore Service
Java
10
star
48

secrets-injector

Go
9
star
49

neaps

a simulator to forecast the end of agile project basing on historical data and using montecarlo simulations
JavaScript
9
star
50

circus-train-bigquery

Circus Train plugin which replicates BigQuery tables to Hive
Java
8
star
51

cypress-codegen

A Cypress plugin which automatically adds and enables IntelliSense for your custom commands!
TypeScript
8
star
52

quibble

Data validator tool to allows testers, developers and analysts to define and execute test-cases involving data. Quibble is able to compare data from one or more data platforms, assert on the outcome and produce generated report output on any anomalies in data.
Java
8
star
53

dr-shadow

Dr Shadow is a library developed by Egencia (part of Expedia Group) that enables shadow traffic (ie. mirroring). It is a valuable tool for having good hygiene for service operations (ie. testing, resiliency, performance).
Java
6
star
54

hello-cloud

hello world example for Multicloud applications
HTML
6
star
55

flyte-client

A Go library designed to make the writing of flyte packs simple
Go
6
star
56

catalyst-server

[DEPRECATED] Configuration and composition management for Hapi.js applications.
JavaScript
6
star
57

aws-adfs-login

Library for user login (client side) using AWS ADFS (Active Directory Federation Service)
Go
5
star
58

apiary-metastore-docker

Docker image for Apiary Data Lake metastore
Shell
5
star
59

apiary-ranger-docker

Docker image for Apiary Data Lake Ranger
Shell
4
star
60

flyte-jira

An Atlassian Jira integration pack for Flyte
Go
4
star
61

kafka-consumer-sns-sqs

Kafka Consumer for AWS SNS/SQS
Python
4
star
62

catalyst-render

[DEPRECATED] A hapi js plugin that works with catalyst-server to provide server-side rendering with react inside a handlebars template
JavaScript
4
star
63

nimbuild

A suite of build tools that enable ultra fast web bundling at run-time.
JavaScript
4
star
64

circus-train-datasqueeze

Circus Train ⨉ DataSqueeze
Java
4
star
65

apiary-federation

Terraform scripts for deploying Apiary Data Lake federation
HCL
4
star
66

data-highway

Java
4
star
67

comparadise

A visual comparison tool for reviewing visual changes on frontend PRs.
TypeScript
4
star
68

flyte-bamboo

An Atlassian Bamboo integration pack for Flyte
Go
4
star
69

housekeeping

Common functionality for managing and cleaning up orphaned paths
Java
3
star
70

pkdd22-challenge-expediagroup

Expedia Group ECML/PKDD 2022 challenge
Python
3
star
71

icf

Independent connectivity forum API and tools
3
star
72

expediagroup-python-sdk

Open World SDK for Python
Python
3
star
73

expediagroup-java-sdk

Open World SDK for Java.
Kotlin
3
star
74

hcommon-hive-metastore

General purpose libraries for interacting with the HiveMetaStore
Java
3
star
75

flyte-shell

Run shell scripts in your Flyte flows with this integration pack
Go
3
star
76

apiary-lifecycle

Terraform deployment scripts for Beekeeper
HCL
3
star
77

apiary-authorization

Authorization for Apiary Data Lake
HCL
3
star
78

network-plugin

The Network plugin allows developers to proxy requests and view the request and responses in IntelliJ.
Kotlin
3
star
79

package-json-validator

A Github Action for validating package.json conventions.
TypeScript
3
star
80

flyte-serf

A Hashicorp Serf integration pack for Flyte
Go
3
star
81

a11y-tools

Client side A11y tools for trapping and tracking user focus.
JavaScript
2
star
82

determination

[DEPRECATED] Configuration resolver using confidence and shortstop.
JavaScript
2
star
83

flyte-ldap

An LDAP integration pack for Flyte
Go
2
star
84

new-project

This repository contains a template you can use to seed a repository for a new open source project.
2
star
85

expediagroup-nodejs-sdk

Expedia Group SDK for Node.js
TypeScript
2
star
86

apiary-drone-fly

Terraform scripts for deploying Drone Fly
HCL
2
star
87

dropwizard-resilience4j-bundle

Integration of Resilience4J into Dropwizard
Java
2
star
88

openworld-sdk-java-deprecated

Makefile
2
star
89

parsec

Parsec is a data processing engine for interpreted queries.
Clojure
2
star
90

renovate-config-catalyst

[DEPRECATED] Renovate shared configuration for catalyst projects
2
star
91

flyte-slack

A Slack integration pack for Flyte
Go
2
star
92

openworld-sdk-java-generators

Mustache
2
star
93

flyte-graphite

A graphite integration pack for Flyte
Go
2
star
94

overwhelm

Operator for complex application deployment on Kubernetes
Go
2
star
95

helm-charts

Expedia Group Helm Charts
Mustache
1
star
96

dr-squid

Dr Squid is a downstream services and databases mocking tool primarily used for chaos testing and gathering performance metrics for Java Spring service
Java
1
star
97

spec-transformer

The API Spec Transformer Library
TypeScript
1
star
98

flyte-ticker

Pack implementing cron-like scheduling in Flyte flows
Go
1
star
99

service-client-statsd

[DEPRECATED] A @vrbo/service-client plugin for reporting operational metrics to a StatsD daemon.
JavaScript
1
star
100

two-tower-lodging-candidate-generation

Python
1
star