You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6543
a5a79f702d
|
5 years ago | |
---|---|---|
.. | ||
.drone.yml | 5 years ago | |
.gitignore | 5 years ago | |
LICENSE | 5 years ago | |
README.md | 5 years ago | |
context.go | 5 years ago | |
go.mod | 5 years ago | |
go.sum | 5 years ago | |
logger.go | 5 years ago | |
macaron.go | 5 years ago | |
macaronlogo.png | 5 years ago | |
recovery.go | 5 years ago | |
render.go | 5 years ago | |
response_writer.go | 5 years ago | |
return_handler.go | 5 years ago | |
router.go | 5 years ago | |
static.go | 5 years ago | |
tree.go | 5 years ago | |
util_go17.go | 5 years ago | |
util_go18.go | 5 years ago |
README.md
Macaron
Package macaron is a high productive and modular web framework in Go.
Getting Started
The minimum requirement of Go is 1.6.
To install Macaron:
go get gitea.com/macaron/macaron
The very basic usage of Macaron:
package main
import "gitea.com/macaron/macaron"
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
- Switch: Gopm registry
- 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.