:golf: The Golf web framework
A fast, simple and lightweight micro-web framework for Go, comes with powerful features and has no dependencies other than the Go Standard Library.
Homepage: golf.readme.io
go get github.com/dinever/golf
No allocation during routing and parameter retrieve.
Dead simple template inheritance with extends
and include
helper comes out of box.
layout.html
<h1>Hello World</h1>
{{ template "body" }}
{{ include "sidebar.html" }}
index.html
{{ extends "layout.html" }}
{{ define "body"}}
<p>Main content</p>
{{ end }}
sidebar.html
<p>Sidebar content</p>
Built-in XSRF and Session support.
Powerful middleware chain.
Configuration from JSON file.
package main
import "github.com/dinever/golf"
func mainHandler(ctx *golf.Context) {
ctx.Send("Hello World!")
}
func pageHandler(ctx *golf.Context) {
ctx.Send("Page: " + ctx.Param("page"))
}
func main() {
app := golf.New()
app.Get("/", mainHandler)
app.Get("/p/:page/", pageHandler)
app.Run(":9000")
}
The website will be available at http://localhost:9000.
The following chart shows the benchmark performance of Golf compared with others.
For more information, please see BENCHMARKING.md