Super useful Go package to configure your HTTP routes using only the standard library. Define routes, middlewares, groups, and subgroups effortlessly!
This package acts like a Swiss Army Knife: It is tiny and compact, providing everything you need in just one file with less than 200 lines of code.
Simply clone the file into your project or import it using the following command:
go get github.com/dbarbosadev/supermuxer@v0.1.1
serverMux := http.NewServeMux()
superRouter := supermuxer.New(serverMux)
superRouter.Get("/users", handler).Put("/users/{id}", handler)
superRouter.Post("/login", handler)
serverMux := http.NewServeMux()
superRouter := supermuxer.New(serverMux)
superRouter.AddMiddlewares(middleware1, middleware2)
superRouter.Get("/users", handler).Put("/users/{id}", handler)
superRouter.Post("/login", handler)
Create a group of routes from a copy of the original router without middlewares. This allows you to define separate route structures while maintaining the original route path.
serverMux := http.NewServeMux()
superRouter := supermuxer.New(serverMux)
superRouter.AddMiddlewares(middleware1, middleware2)
// Route "POST /login" with middleware1 and middleware2
superRouter.Post("/login", handler)
// Creates the users group
userRouter := superRouter.Group("/users")
// Group Route "GET /users" without middlewares
userRouter.Get("", handler)
userRouter.AddMiddlewares(middleware3)
// Group Route "Put /users/{id}" with middleware3
userRouter.Put("/{id}", handler)
Works the same way as the Group function, but the subgroup reuses the middlewares from the original router. This makes it easy to maintain middleware consistency across related routes.
serverMux := http.NewServeMux()
superRouter := supermuxer.New(serverMux)
superRouter.AddMiddlewares(middleware1, middleware2)
// Route "POST /login" with middleware1 and middleware2
superRouter.Post("/login", handler)
// Creates the users group
userRouter := superRouter.SubGroup("/users")
// Group Route "GET /users" with middlewares1 and middlewares2
userRouter.Get("", handler)
userRouter.AddMiddlewares(middleware3)
// Group Route "Put /users/{id}" with middlewares1, middlewares2 and middlewares3
userRouter.Put("/{id}", handler)
$ claude mcp add supermuxer \
-- python -m otcore.mcp_server <graph>