quartzgun
quartzgun is a basic web toolkit in Go which provides the following primitives:
- static route trees
- dynamic routes which can capture parameters by regex
- supports
func (http.Handler) http.Handler
middleware pattern - builtin
renderer
s as endpoints of middleware chains, for rendering templated HTML or providing JSON/XML data for an API endpoint UserStore
interface and login/logout wrapper functions for user authentication- proof of concept implementation of
UserStore
with indental storage backend - rate limiters
- some additional middleware that takes the work out of authentication and CSRF protection
The toolkit is designed to enable speedy development of websites and APIs. It's inspired by Django and Express in terms of the ease of use and speed of development, but interpreted through the explicit and minimal design aesthetic of Go (and with the safety and performance benefits that come with the language).
quartzgun is stable and has been used to build the following tools:
- source code
- go module
forge.lightcrystal.systems/nilix/quartzgun