finds.dev← search

// the find

go-macaron/macaron

★ 3,546 · Go · Apache-2.0 · updated Feb 2026

Package macaron is a high productive and modular web framework in Go.

Macaron is a middleware-based web framework for Go, heavily inspired by Martini and built around dependency injection via reflection. It powered Gogs and Grafana before those projects grew beyond it. The maintainers themselves now recommend you use Flamego instead.

The middleware ecosystem is genuinely broad — session, CSRF, i18n, binding, WebSockets, OAuth2, all as separate pluggable packages rather than one monolithic import. The suburl and nested group router support is clean and was ahead of its time when Gogs needed it. Test coverage is solid for a framework this age, with test files alongside every core source file. The explicit maintenance announcement in the README is honest — they didn't just quietly abandon it.

Dependency injection via reflection (the inject package) is the core abstraction, and it's a bad idea — function signatures become your config, type collisions are silent bugs waiting to happen, and it makes the call stack nearly impossible to trace in a debugger. The framework predates Go modules and the import path (`gopkg.in/macaron.v1`) shows it. Officially in maintenance mode means security fixes only, no new features, shrinking community. Flamego exists and solves the same problems without the reflection-based DI, so picking Macaron for a new project today is choosing a dead end.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →