Macaron Build Status

Macaron Logo

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

Current version: 0.6.8

Getting Started

The minimum requirement of Go is 1.3.

To install Macaron:

go get

The very basic usage of Macaron:

package main

import ""

func main() {
	m := macaron.Classic()
	m.Get("/", func() string {
		return "Hello world!"


  • Powerful routing with suburl.
  • Flexible routes combinations.
  • Unlimited nested group routers.
  • Directly integrate with existing services.
  • Dynamically change template files at runtime.
  • Allow to use in-memory template and static files.
  • Easy to plugin/unplugin features with modular design.
  • Handy dependency injection powered by inject.
  • Better router layer and less reflection make faster speed.


Middlewares allow you easily plugin/unplugin features for your Macaron applications.

There are already many middlewares to simplify your work:

  • gzip – Gzip compression to all requests
  • render – Go template engine
  • static – Serves static files
  • binding – Request data binding and validation
  • i18n – Internationalization and Localization
  • cache – Cache manager
  • session – Session manager
  • csrf – Generates and validates csrf tokens
  • captcha – Captcha service
  • pongo2 – Pongo2 template engine support
  • sockets – WebSockets channels binding
  • bindata – Embed binary data as static and template files
  • toolbox – Health check, pprof, profile and statistic services
  • oauth2 – OAuth 2.0 backend
  • switcher – Multiple-site support
  • method – HTTP method override
  • permissions2 – Cookies, users and permissions
  • renders – Beego-like render engine(Macaron has built-in template engine, this is another option)

Use Cases

Getting Help



This project is under Apache v2 License. See the LICENSE file for the full license text.