{"repo":"dunglas/vulcain","free":true,"listed":false,"github":"https://github.com/dunglas/vulcain","clone":"git clone https://github.com/dunglas/vulcain.git","description":"🔨 Fast and idiomatic client-driven REST APIs.","language":"Go","stars":3593,"topics":["api","http2","server-push","rest-api","rest","graphql","reverse-proxy","vulcain","vulcain-server","hacktoberfest"],"license":"AGPL-3.0","category":"api-integrations-sdks","readme_excerpt":"Vulcain is a brand new protocol using Preload hints and the 103 Early Hints status code to create fast and idiomatic client-driven REST APIs. An open source gateway server (a module for the Caddy web server), which you can put on top of any existing web API to instantly turn it into a Vulcain-compatible API is also provided! It supports hypermedia APIs (e.g. any API created with API Platform) but also any \"legacy\" API by documenting its relations using OpenAPI. [tabs] Preload Preload + Early Hints Server push [/tabs] Grab What You Need... Burn The REST! Introduction Pushing Relations Filtering Resources Gateway Server Caddy Web Server Module Mapping a Non-Hypermedia API using OpenAPI Legacy Standalone Server Legacy Configuration Comparison with GraphQL and Other API Formats Using GraphQL as Query Language for Vulcain Demo API Cache Considerations Formal Specification Getting Help The protocol has been published as an Internet Draft that is maintained in this repository. A reference, production-grade, implementation gateway server is also available in this repository. It's free software (AGPL) written in Go. A Docker image is provided. Introduction Over the years, several formats have been created to fix performance bottlenecks impacting web APIs: over fetching, under fetching, the n+1 problem... Current solutions for these problems (GraphQL, JSON:API's embedded resources and sparse fieldsets, ...) are smart network hacks for HTTP/1. But these hacks come with (too) many drawba","default_branch":null,"files":null,"tree":[],"storefront":"/r/dunglas","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/dunglas/vulcain/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}