The Goal Web Toolkit for Go

Goal is a set of loosely coupled tools for high productivity web-development in Go language.
Every single tool does exactly one thing: bootstraps your project,
generates HTTP handler functions, hot reloads your app, etc.
Code generation is being relied on instead of runtime reflection (it may be used with go generate).
The aim of Goal is high productivity and performance, type safety, compatibility with the standard
library, and customizability.

The project was highly inspired by Revel Framework. I had participated in the Revel’s development for some time. And I enjoyed many of its ideas and community. But not the architecture and implementation details. So, I proposed a new architecture that could improve project’s maintainability and solve many of its issues. Unfortunately, Revel started loosing momentum and I didn’t feel like I could make so radical changes myself. Thus, Goal was born as a separate experimental project.

Some of the implementation details:

  • A number of independent tools instead of single monolith.
  • More code generation and no runtime reflection.
  • “Magic actions” instead of interceptors, startup hooks, and filters.
  • Every component can be easily replaced by alternative implementations (your own router, template system, config. package, server, and so forth).

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.