# README
A secure, flexible, rapid Go web framework
Visit aah's official website https://aahframework.org to learn more
News
v0.12.4
released and tagged on Mar 03, 2020.v0.12.3
released and tagged on Feb 06, 2019.v0.12.2
released and tagged on Dec 13, 2018.v0.12.0
released and tagged on Dec 02, 2018.v0.11.4
released and tagged on Aug 27, 2018.
Stargazers over time
Introduction
aah aims to provide necessary components to build modern Web, API and WebSocket applications. aah framework is secure, rapid and extensible. It takes full care of infrastructure, boilerplate code, repetitive activities, reusable components, etc.
aah is feature packed framework with nature of micro framework.
Have a look at the aah features to know the benefits of using aah and it is very well documented.
- Truly easy to use and configuration driven.
- Security aware framework, secure session, CSRF prevention, XSS prevention, authentication, authorization, etc.
- Build powerful end-user product and ship it.
- Extensible at module level. If not, then immediately raise an issue.
- Highly maintainable, reduced delivery time, shines with application growth.
- Steadily maturing framework and the feature-sets are getting enhanced release by release.
aah's initial stable version 0.5.0
was released on May 19, 2017.
# Packages
Package ahttp is to cater HTTP helper methods for aah framework.
Package ainsp is a Go ast library for aah framework, it does inspect and discovers the Go `struct` which embeds particular type `struct`.
Package aruntime provides aah runtime capabilities to collect debug stacktrace, goroutines diagnosis profiling.
Package cache provides simple and extensible cache feature for aah application.
Package config is nice and handy layer built around `forge` config syntax; which is similar to HOCON syntax.
Package console provides a feature to implement CLI commands into your aah application easily and extensible.
Package ess provides a essentials and helper for the application development and usage.
Package i18n is internationalization and localization support for aah framework.
Package log simple logger and provides capabilities to fulfill application use cases.
Package router provides routing implementation for aah framework.
Package security houses all the application security implementation Authentication, Authorization, Session Management, CSRF, Security Headers, etc.) by aah framework.
Package valpar provides feature of request value parsing, handling, binding and validating.
Package vfs provides Virtual FileSystem (VFS) capability.
Package view is implementation of aah framework view engine using Go Template engine.
Package ws is a WebSocket library for aah framework (RFC 6455 compliant).
# Functions
ActionMiddleware performs - Executes Interceptors (Before, Before<ActionName>, After, After<ActionName>, Panic, Panic<ActionName>, Finally, Finally<ActionName>) - Invokes Controller Action.
AntiCSRFMiddleware provides feature to prevent Cross-Site Request Forgery (CSRF) attacks.
App method returns the aah application instance.
AuthcAuthzMiddleware is aah Authentication and Authorization Middleware.
BindMiddleware method parses the incoming HTTP request to collects request parameters (Path, Form, Query, Multipart) stores into context.
CORSMiddleware provides Cross-Origin Resource Sharing (CORS) access control feature.
RouteMiddleware method performs the routing logic.
ToMiddleware method expands the possibilities.
# Constants
EventOnConfigHotReload is published just after aah application internal config hot-reload and re-initialize completes without an error otherwise it won't be published.
EventOnHeaderReply is published before writing HTTP header Status.
EventOnInit is published once the aah.AppConfig() is loaded.
EventOnPostAuth is published once the Authentication and Authorization info gets populated into Subject.
EventOnPostReply is published right after the response gets written on the wire.
EventOnPostShutdown is published just after the successful grace shutdown of aah server and then application does clean exit.
EventOnPreAuth is published just before the Authentication and Authorization.
EventOnPreReply is published just before writing a reply/response on the wire.
EventOnPreShutdown is published when application receives OS Signals `SIGINT` or `SIGTERM` and before the triggering graceful shutdown.
EventOnRequest is published on each incoming request to the aah server.
EventOnStart is published just before the start of aah Server.
KeyOAuth2Token key name is used to store OAuth2 Access Token into `aah.Context`.
KeyViewArgAuthcInfo key name is used to store `AuthenticationInfo` instance into `ViewArgs`.
KeyViewArgRequest key name is used to store HTTP Request instance into `ViewArgs`.
KeyViewArgSubject key name is used to store `Subject` instance into `ViewArgs`.
Version no.
# Variables
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
aah errors.
# Structs
Application struct represents aah application.
BuildInfo holds the aah application build information; such as BinaryName, Version and Date.
Context type for aah framework, gets embedded in application controller.
Error structure is used to represent the error information in aah framework.
No description provided by the author
No description provided by the author
EventStore type holds all the events belongs to aah application.
HTTPEngine holds the implementation handling HTTP request, response, middlewares, interceptors, etc.
Middleware struct is to implement aah framework middleware chain.
Reply gives you control and convenient way to write a response effectively.
# Interfaces
ErrorHandler is an interface to implement controller level error handling.
Render interface to various rendering classifcation for HTTP responses.
# Type aliases
Data type used for convenient data type of map[string]interface{}.
ErrorHandlerFunc is a function type.
No description provided by the author
No description provided by the author
MiddlewareFunc func type is aah framework middleware signature.
No description provided by the author
RenderFunc type is an adapter to allow the use of regular function as custom Render.