Skip to content
/ argo Public

Argo is a compact and compressible binary serialization format for GraphQL

Notifications You must be signed in to change notification settings

msolomon/argo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⛵ Argo

Compatible with GraphQL October 2021 Edition. View Argo on GitHub.

Argo is a compact and compressible binary serialization format for GraphQL. It aims to:

  • Minimize end-to-end latency of GraphQL responses
    • Including serialization, transport, and deserialization
  • Minimize bytes on the wire, with and without external compression
  • Be easy to implement

Argo:

  • Takes the place of JSON in GraphQL responses
  • Usually meets the needs of mobile clients (and server clients) better than web clients
  • Works best with code generation, but also works well with interpretation
  • Does not currently support GraphQL Input types

Compressed Argo responses are typically 5%-15% smaller than corresponding compressed JSON responses.

Uncompressed Argo responses are typically 50-80% smaller than corresponding JSON responses.

Specification

Argo has a formal specification:

Reference implementation

argo-js is a reference implementation of Argo in TypeScript, and can be found in this repository. It is distributed on NPM under the name argo-graphql.

3rd party implementations

These open-source implementations are maintained separately:

Authors and contributors

Argo was created and authored by Mike Solomon.

A big Thank You to these fine folks who have contributed on GitHub!

About

Argo is a compact and compressible binary serialization format for GraphQL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages