Skip to content
This repository has been archived by the owner on Aug 27, 2020. It is now read-only.

hoangvvo/graphyne

Repository files navigation

This project has been renamed to benzene. https://github.com/hoangvvo/benzene

Graphyne

ci codecov PRs Welcome

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.
  • 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.

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). By furthur caching the compiled queries in memory using a LRU strategy, Graphyne manages to become lightning-fast.

Examples

See examples.

Packages

Graphyne Server

npm

Fast and simple GraphQL Server for Node.js frameworks.

Documentation npm

Graphyne Worker

npm

Run GraphQL execution layer in the browser (Web Workers) and at the edge (Cloudflare Workers®).

Documentation npm

Graphyne WebSocket

npm

Add WebSocket support to graphyne-server. Implements GraphQL over WebSocket Protocol.

Documentation npm

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:

  • WebSocket/Subscriptions
  • Persisted queries
  • Federation
  • Gateway

GraphQL execution layer is also bounded by the limitation of graphql-jit. Yet, I have been using it in production and see no problems for my use-cases.

Contributing

Please see my contributing.md.

License

MIT