Go 1.22+ Native Routing

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.

0
Dependencies
~
Overhead vs stdlib
100%
Stdlib compatible
main.go
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")
}
$ go run main.go
[mach] Server started on :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
MIT Licensed • Built by @mrshabel