Vulcain is a protocol and gateway server that uses HTTP/2 Server Push and the 103 Early Hints status code to create fast client-driven REST APIs.
Vulcain addresses performance problems in web APIs such as over-fetching, under-fetching, and the n+1 problem by leveraging HTTP/2 features rather than introducing custom query languages or data formats. The protocol works by allowing clients to declare which related resources they need, and the server responds with preload hints or server pushes to deliver those resources proactively. The project provides a gateway server implementation that can be deployed in front of any existing web API to add Vulcain support without modifying the backend. It works with hypermedia APIs that already expose relations, and can also wrap legacy APIs by documenting their relations through OpenAPI specifications.
Vulcain suits teams building REST APIs who want to improve performance while maintaining HTTP semantics and cacheability. The gateway approach means you can adopt it without rewriting existing backends. The project includes a Caddy web server module for easy deployment and provides a Docker image for containerized environments. The README explicitly compares Vulcain to GraphQL and other API formats, noting that Vulcain maintains better HTTP cache behavior, cleaner logs, and improved security posture compared to those alternatives.
The project maintains a formal specification published as an Internet Draft. The reference implementation is written in Go and released under the AGPL license. Development activity shows ongoing maintenance of both the protocol specification and the gateway server implementation, with documentation covering deployment scenarios ranging from the Caddy module to standalone server configurations.