Go Middleware Vet

Created by fd & romainmenke

Why / What ?

With the upcoming release of Go1.8 and it's support for H2 Push we started exploring how we could enable this in our reverse proxies and our application servers. During code review one thing kept coming back: "this handler doesn't implement all needed interfaces".

After much back and forth we created a middleware test to enforce conformance. It tests accross multiple Go versions and with HTTP1.1, HTTP1.1+TLS and HTTP2 requests. Failing to implement an interface for a particiular Proto or Go version results in bugs that are hard to pinpoint, especially for the implementer.

When we applied this to widely used packages we discovered that many of them also failed to implement all needed interfases. That is why we decided to open this up and create a dashboard.

Notes

This little website makes use of Custom Elements which aren't supported yet by all browsers. Get chrome for the full experience.