Siris has its own middleware form of func(ctx context.Context) but it's also compatible with all net/http middleware forms. See here.
I'm sure that each of you have, already, found his own favorite list but here's a small list of third-party handlers:
| Middleware | Author | Description |
|---|---|---|
| tollbooth | Didip Kerabat | Generic middleware to rate-limit HTTP requests. Example |
| goth | Mark Bates | OAuth, OAuth2 authentication. Example |
| binding | Matt Holt | Data binding from HTTP requests into structs |
| cloudwatch | Colin Steele | AWS cloudwatch metrics middleware |
| csp | Awake Networks | Content Security Policy (CSP) support |
| delay | Jeff Martinez | Add delays/latency to endpoints. Useful when testing effects of high latency |
| New Relic Go Agent | Yadvendar Champawat | Official New Relic Go Agent (currently in beta) |
| gorelic | Jingwen Owen Ou | New Relic agent for Go runtime |
| JWT | Auth0 | Middleware checks for a JWT on the Authorization header on incoming requests and decodes it. Example |
| logrus | Dan Buch | Logrus-based logger |
| onthefly | Alexander Rødseth | Generate TinySVG, HTML and CSS on the fly |
| permissions2 | Alexander Rødseth | Cookies, users and permissions |
| prometheus | Rene Zbinden | Easily create metrics endpoint for the prometheus instrumentation tool |
| render | Cory Jacobsen | Render JSON, XML and HTML templates |
| RestGate | Prasanga Siripala | Secure authentication for REST API endpoints |
| secure | Cory Jacobsen | Middleware that implements a few quick security wins |
| stats | Florent Messa | Store information about your web application (response time, etc.) |
| VanGoH | Taylor Wrobel | Configurable AWS-Style HMAC authentication middleware |
| xrequestid | Andrea Franz | Middleware that assigns a random X-Request-Id header to each request |
| digits | Bilal Amarni | Middleware that handles Twitter Digits authentication |
Feel free to put up a PR your middleware!