Stop fighting
your framework.
Start shipping.
Mach is a Go web framework that gets out of your way. Zero deps, stdlib routing, context pooling. Built by someone tired of framework bloat.
package main
import "github.com/mrshabel/mach"
func main() {
app := mach.Default()
app.GET("/", func(c *mach.Context) {
c.JSON(200, map[string]string{
"message": "blazingly fast",
})
})
app.Run(":8080")
}Built different
No radix trees, no custom routers, no vendor lock-in
stdlib routing
Go 1.22's ServeMux is fast enough. Why reinvent it? Method routing, path params, wildcards—it's all there.
context pooling
sync.Pool reuses Context objects. Less GC pressure, more throughput. Your API stays fast under load.
standard middleware
Just http.Handler wrapping. No proprietary patterns. Works with any stdlib-compatible middleware.
zero dependencies
Nothing to `go get` except Mach. Your dependency tree stays clean. Your builds stay fast.
graceful shutdown
Built-in signal handling. Your requests finish cleanly when you deploy. No dropped connections.
learn once, use forever
No custom abstractions. If you know Go's stdlib, you already know Mach. Onboard in minutes.
Ready to build something?
Stop configuring. Start coding.
go get github.com/mrshabel/mach