Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hoangvvo/graphyne
⚡ Lightning-fast JavaScript GraphQL Server ⚡
https://github.com/hoangvvo/graphyne
framework-agnostic graphql graphql-server javascript node web-worker
Last synced: about 2 months ago
JSON representation
⚡ Lightning-fast JavaScript GraphQL Server ⚡
- Host: GitHub
- URL: https://github.com/hoangvvo/graphyne
- Owner: hoangvvo
- License: mit
- Archived: true
- Created: 2020-04-07T21:41:52.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-08-27T13:58:16.000Z (about 4 years ago)
- Last Synced: 2024-09-24T19:33:17.480Z (about 2 months ago)
- Topics: framework-agnostic, graphql, graphql-server, javascript, node, web-worker
- Language: TypeScript
- Homepage:
- Size: 2.21 MB
- Stars: 19
- Watchers: 1
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
> # This project has been renamed to `benzene`. https://github.com/hoangvvo/benzene
# Graphyne
![ci](https://github.com/hoangvvo/graphyne/workflows/Test%20and%20coverage/badge.svg)
[![codecov](https://codecov.io/gh/hoangvvo/graphyne/branch/master/graph/badge.svg)](https://codecov.io/gh/hoangvvo/graphyne)
[![PRs Welcome](https://badgen.net/badge/PRs/welcome/ff5252)](/CONTRIBUTING.md)A **lightning-fast** JavaScript GraphQL Server, featuring:
- Caching of query validation and compilation with LRU strategy.
- Highly performant Just-In-Time compiler via [graphql-jit](https://github.com/zalando-incubator/graphql-jit).
- Lightweight, non-opinionated, and non-coupled integration with great extensibility: Does nothing more but returning handler functions to integrate into framework' routers, web workers, or [`ws`](https://github.com/websockets/ws).## Why
`Graphyne` uses `graphql-jit` under the hood to compile queries into optimized functions that significantly improve performance ([more than 10 times better than `graphql-js`](https://github.com/zalando-incubator/graphql-jit#benchmarks)). By furthur caching the compiled queries in memory using a LRU strategy, `Graphyne` manages to become lightning-fast.
## Examples
See [examples](examples).
## Packages
### Graphyne Server
[![npm](https://badgen.net/npm/v/graphyne-server)](https://www.npmjs.com/package/graphyne-server)
Fast and simple GraphQL Server for Node.js frameworks.
[Documentation](packages/graphyne-server) [npm](https://www.npmjs.com/package/graphyne-server)
### Graphyne Worker
[![npm](https://badgen.net/npm/v/graphyne-worker)](https://www.npmjs.com/package/graphyne-worker)
Run GraphQL execution layer in the browser ([Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API)) and at the edge ([Cloudflare Workers®](https://workers.cloudflare.com/)).
[Documentation](packages/graphyne-worker) [npm](https://www.npmjs.com/package/graphyne-worker)
### Graphyne WebSocket
[![npm](https://badgen.net/npm/v/graphyne-ws)](https://www.npmjs.com/package/graphyne-ws)
Add WebSocket support to `graphyne-server`. Implements [GraphQL over WebSocket Protocol](https://github.com/apollographql/subscriptions-transport-ws/blob/master/PROTOCOL.md).
[Documentation](packages/graphyne-ws) [npm](https://www.npmjs.com/package/graphyne-ws)
## Features / TODO
`Graphyne` is a work-in-progress. It is obviously not battle-tested and lack several features. My plan for now is to implement the following:
- [x] WebSocket/Subscriptions
- [ ] Persisted queries
- [ ] Federation
- [ ] GatewayGraphQL execution layer is also bounded by the limitation of [graphql-jit](https://github.com/zalando-incubator/graphql-jit#differences-to-graphql-js). Yet, I have been using it in production and see no problems for my use-cases.
## Contributing
Please see my [contributing.md](/CONTRIBUTING.md).
## License
[MIT](LICENSE)