Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - go-macaron/macaron: Package macaron is a high productive and modular web framework in Go.
Package macaron is a high productive and modular web framework in Go. - go-macaron/macaron
Visit SiteGitHub - go-macaron/macaron: Package macaron is a high productive and modular web framework in Go.
Package macaron is a high productive and modular web framework in Go. - go-macaron/macaron
Powered by 0x5a.live ๐
Macaron
Package macaron is a high productive and modular web framework in Go.
๐ฃ Announcement
- If you're considering using Macaron, you may want to take a look at Flamego first, which is the successor of the Macaron.
- That means Macaron is officially in the maintenance mode, and no major features will be added to Macaron.
Getting Started
The minimum requirement of Go is 1.18.
To install Macaron:
go get gopkg.in/macaron.v1
The very basic usage of Macaron:
package main
import "gopkg.in/macaron.v1"
func main() {
m := macaron.Classic()
m.Get("/", func() string {
return "Hello world!"
})
m.Run()
}
Features
- 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
Middlewares allow you easily plugin/unplugin features for your Macaron applications.
There are already many middlewares to simplify your work:
- render - Go template engine
- static - Serves static files
- gzip - Gzip compression to all responses
- 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
- authz - ACL/RBAC/ABAC authorization based on Casbin
- 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)
- piwik - Server-side piwik analytics
Use Cases
- Gogs: A painless self-hosted Git Service
- Grafana: The open platform for beautiful analytics and monitoring
- Peach: A modern web documentation server
- Go Walker: Go online API documentation
- Critical Stack Intel: A 100% free intel marketplace from Critical Stack, Inc.
Getting Help
Credits
- Basic design of Martini.
- Logo is modified by @insionng based on Tribal Dragon.
License
This project is under the Apache License, Version 2.0. See the LICENSE file for the full license text.
GoLang Resources
are all listed below.
Made with โค๏ธ
to provide different kinds of informations and resources.