urfave/negroni

Idiomatic HTTP Middleware for Golang

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 56 seconds ago
Added to GitGenius on September 8th, 2026
Created on May 18th, 2014
Open Issues & Pull Requests: 6 (+0)
GitHub issues: Enabled
Number of forks: 573
Total Stargazers: 7,526 (+0)
Total Subscribers: 217 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.3 days
Mean response time: 451.8 days
90th percentile: 1765.9 days
Tracked items: 7

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 4
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 2,458 days
Stale 30+ days: 4
Stale 90+ days: 0

Recent activity

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

Top labels

  • bug (2)
  • future (2)
  • question (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Negroni is a middleware library for Go that provides an idiomatic approach to composing HTTP handlers using the standard net/http package.

Negroni solves the problem of managing middleware chains in Go web applications without imposing a framework or introducing implicit behavior. It works by providing a lightweight handler composition system that explicitly chains middleware together, allowing each middleware to execute before and after the next handler in the chain. The library supports both custom middleware implementing the negroni.Handler interface and standard net/http.Handler implementations, giving developers flexibility in how they structure their middleware.

Negroni suits developers who want middleware composition without the "magic" of heavier frameworks. It is designed to work directly with net/http and is explicitly not a framework—it is middleware-focused and expects developers to bring their own router. The README contrasts it with Martini, noting that while Martini offers similar ideas, Negroni avoids excessive implicit behavior. For developers getting started, the tool provides negroni.Classic(), which bundles three commonly useful middleware: panic recovery, request/response logging, and static file serving. This makes it easy to bootstrap applications while remaining optional for those who prefer minimal defaults.

The project maintains active development with regular updates and demonstrates stability through comprehensive test coverage. The codebase shows consistent attention to code quality and reliability. Documentation is thorough, with translations available in multiple languages, and the project has been adopted in package repositories for distribution alongside standard Go tooling.