Flamego is a fantastic modular Go web framework boiled with dependency injection.
It is the successor of the Macaron, and equips the most powerful routing syntax among all web frameworks within the Go ecosystem.
Installation
The minimum requirement of Go is 1.16.
go get github.com/flamego/flamego
Getting started
package main
import "github.com/flamego/flamego"
func main() {
f := flamego.Classic()
f.Get("/", func() string {
return "Hello, Flamego!"
})
f.Run()
}
Features
- The most powerful routing syntax among all web frameworks within the Go ecosystem.
- Limitless routes nesting and grouping.
- Inject middleware at wherever you want.
- Integrate with any existing Go web application non-intrusively.
- Cooked with dependency injection to write testable and maintainable code.
Middleware
Logger
- Log requests and response status codeRecovery
- Automatic recovery from panicsStatic
- Serve static files- template - Go template rendering
- session - User session management
- recaptcha - Google reCAPTCHA verification
- csrf - Generate and validate CSRF tokens
- cors - Cross-Origin Resource Sharing
- binding - Request data binding and validation
- gzip - Gzip compression to responses
- cache - Cache management
- brotli - Brotli compression to responses
- auth - Basic and bearer authentication
Getting help
Stay tuned!
Users and projects
- Cardinal: Attack-defence CTF platform.
- mebeats: Realtime heartbeat monitor service based on Mi band.
- Just send a PR to add yours!
License
This project is under the MIT License. See the LICENSE file for the full license text.