Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dotansimha/graphql-yoga
🧘 Rewrite of a fully-featured GraphQL Server with focus on easy setup, performance & great developer experience. The core of Yoga implements WHATWG Fetch API and can run/deploy on any JS environment.
https://github.com/dotansimha/graphql-yoga
bun deno fetch graphql graphql-server javascript nodejs the-guild typescript w3c whatwg
Last synced: 7 days ago
JSON representation
🧘 Rewrite of a fully-featured GraphQL Server with focus on easy setup, performance & great developer experience. The core of Yoga implements WHATWG Fetch API and can run/deploy on any JS environment.
- Host: GitHub
- URL: https://github.com/dotansimha/graphql-yoga
- Owner: dotansimha
- License: mit
- Created: 2017-11-15T10:35:08.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T02:21:42.000Z (11 days ago)
- Last Synced: 2024-10-29T20:25:45.338Z (10 days ago)
- Topics: bun, deno, fetch, graphql, graphql-server, javascript, nodejs, the-guild, typescript, w3c, whatwg
- Language: TypeScript
- Homepage: https://the-guild.dev/graphql/yoga-server
- Size: 54.3 MB
- Stars: 8,242
- Watchers: 71
- Forks: 570
- Open Issues: 168
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred-test - dotansimha/graphql-yoga - 🧘 Rewrite of a fully-featured GraphQL Server with focus on easy setup, performance & great developer experience. The core of Yoga implements WHATWG Fetch API and can run/deploy on any JS environment. (TypeScript)
- awesome-bun - GraphQL Yoga - A fast, fully featured GraphQL Framework that [runs on Bun](https://the-guild.dev/graphql/yoga-server/v3/integrations/integration-with-bun), Cloudflare Workers, Deno, and any JS environment. (Extensions / Frameworks)
README
[![GraphQLConf 2024 Banner: September 10-12, San Francisco. Hosted by the GraphQL Foundation](https://github.com/user-attachments/assets/bdb8cd5d-5186-4ece-b06b-b00a499b7868)](https://graphql.org/conf/2024/?utm_source=github&utm_medium=graphql_yoga&utm_campaign=readme)
GraphQL Yoga
Fully-featured GraphQL Server with focus on easy setup, performance & great developer experience
Go to documenation
![npm](https://badgen.net/npm/v/graphql-yoga)
![bundlephobia minified size](https://badgen.net/bundlephobia/min/graphql-yoga)
![bundlephobia minified+zipped size](https://badgen.net/bundlephobia/minzip/graphql-yoga)
![bundlephobia treeshaking](https://badgen.net/bundlephobia/tree-shaking/graphql-yoga)
![license](https://badgen.net/github/license/dotansimha/graphql-yoga)## Quick start
### Install
```sh
pnpm add graphql-yoga graphql
```### Start
Make a schema, create Yoga and start a Node server:
```ts
import { createServer } from 'node:http'
import { createSchema, createYoga } from 'graphql-yoga'const yoga = createYoga({
schema: createSchema({
typeDefs: /* GraphQL */ `
type Query {
hello: String
}
`,
resolvers: {
Query: {
hello: () => 'Hello from Yoga!'
}
}
})
})const server = createServer(yoga)
server.listen(4000, () => {
console.info('Server is running on http://localhost:4000/graphql')
})
```## Overview
- **Easiest way to run a GraphQL server:** Sensible defaults & includes everything you need with
minimal setup (we also export a platform/env-agnostic handler so you can build your own wrappers
easily).
- **Includes Subscriptions:** Built-in support for GraphQL subscriptions using
[**S**erver-**S**ent **E**vents](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events).
- **Compatible:** Works with all GraphQL clients
([Apollo](https://www.apollographql.com/docs/react/), [Relay](https://relay.dev/),
[Urql](https://formidable.com/open-source/urql/)...) and fits seamless in your GraphQL workflow.
- **WHATWG Fetch API:** the core package depends on
[WHATWG Fetch API](https://fetch.spec.whatwg.org/) so it can run and deploy on any environment
(Serverless, Workers, Deno, Node).
- **Easily Extendable:** New GraphQL-Yoga support all [`envelop`](https://www.envelop.dev) plugins.## [Features](https://www.the-guild.dev/graphql/yoga-server/docs)
- Fully typed with [TypeScript](https://www.typescriptlang.org)
- [GraphQL over HTTP spec compliant](https://github.com/enisdenjo/graphql-http/tree/master/implementations/graphql-yoga)
- [GraphiQL included](https://www.the-guild.dev/graphql/yoga-server/docs/features/graphiql)
- [File uploads with GraphQL Multipart Request spec](https://www.the-guild.dev/graphql/yoga-server/docs/features/file-uploads)
- [Subscriptions and realtime capabilities](https://www.the-guild.dev/graphql/yoga-server/docs/features/subscriptions)
- [Automatic persisted queries](https://www.the-guild.dev/graphql/yoga-server/docs/features/automatic-persisted-queries)
- [Built-in parsing and validation caching](https://www.the-guild.dev/graphql/yoga-server/docs/features/parsing-and-validation-caching)
- [Testing utilities](https://www.the-guild.dev/graphql/yoga-server/docs/features/testing)
- Supports [ESM](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules)
- Runs **everywhere**, including environments like:
- [Deno](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/integration-with-deno)
- [Bun](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/integration-with-bun)
- [Cloudflare Workers](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/integration-with-cloudflare-workers)
- [AWS Lambda](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/integration-with-aws-lambda)
- [_And other..._](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/z-other-environments)
- [_And more..._](https://www.the-guild.dev/graphql/yoga-server/docs)## [Documentation](https://www.the-guild.dev/graphql/yoga-server/docs)
Our [documentation website](https://www.the-guild.dev/graphql/yoga-server/docs) will help you get
started.## [Examples](https://github.com/dotansimha/graphql-yoga/tree/main/examples)
We've made sure developers can quickly start with GraphQL Yoga by providing a comprehensive set of
examples.
[See all of them in the `examples/` folder.](https://github.com/dotansimha/graphql-yoga/tree/main/examples)## [Comparison](https://www.the-guild.dev/graphql/yoga-server/docs/comparison)
Read more about how GraphQL Yoga compares to other servers in the ecosystem
[here](https://www.the-guild.dev/graphql/yoga-server/docs/comparison).## Contributing
If this is your first time contributing to this project, please do read our
[Contributor Workflow Guide](https://github.com/the-guild-org/Stack/blob/master/CONTRIBUTING.md)
before you get started off.For this project in particular, to get started on `stage/2-failing-test`:
1. Install [Node.js](https://nodejs.org/)
2. Run in your terminal: `npm i -g pnpm@8 && pnpm install && pnpm build`
3. Add tests to `packages/graphql-yoga/__tests__` using [Jest](https://jestjs.io/docs/api) APIs
4. Run the tests with `pnpm test`Feel free to open issues and pull requests. We're always welcome support from the community.
## Code of Conduct
Help us keep Yoga open and inclusive. Please read and follow our
[Code of Conduct](https://github.com/the-guild-org/Stack/blob/master/CODE_OF_CONDUCT.md) as adopted
from [Contributor Covenant](https://www.contributor-covenant.org/).## License
MIT