dunglas/vulcain

🔨 Fast and idiomatic client-driven REST APIs.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 7 minutes ago
Added to GitGenius on September 19th, 2026
Created on September 9th, 2019
Open Issues & Pull Requests: 28 (+0)
GitHub issues: Enabled
Number of forks: 103
Total Stargazers: 3,593 (+0)
Total Subscribers: 50 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 117.0 days
Mean response time: 365.3 days
90th percentile: 1355.3 days
Tracked items: 5

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 3
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 805 days
Stale 30+ days: 2
Stale 90+ days: 2

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

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.