# revel/revel

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/revel-revel).**

13,224 stars · 1,360 forks · Go · MIT

## Links

- GitHub: https://github.com/revel/revel
- Homepage: http://revel.github.io
- awesome-repositories: https://awesome-repositories.com/repository/revel-revel.md

## Description

Revel is a full-stack web framework and toolkit for building applications with the Go language. It implements a model-view-controller architecture to separate business logic from user interface rendering, providing a comprehensive system for routing, parameter binding, and session management.

The project distinguishes itself with a high-productivity development environment featuring automatic code compilation and hot-reloading, which refreshes the application state and templates upon file changes without requiring manual restarts. It also employs reflection-based parameter binding to automatically convert raw request data into typed variables.

The framework covers a broad range of capabilities, including server-side HTML rendering with pluggable template engines, bidirectional WebSocket communication, and a composable middleware filter chain. Additional support is provided for signed cookie session management, content internationalization, asynchronous background job execution, and hierarchical application logging.

The system includes utilities for managing the application lifecycle, from ordered startup initialization to shutdown hooks.

## Tags

### Software Engineering & Architecture

- [Controller-Based Routing](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/api-design-management/api-patterns/controller-based-routing.md) — Implements an architectural pattern mapping incoming network requests to specific controller actions. ([source](https://github.com/revel/revel/blob/master/router_test.go))
- [MVC Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/mvc-frameworks.md) — A framework implementing the model-view-controller pattern to separate business logic from user interface rendering.
- [Composable Middleware Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/request-interception-middleware/composable-middleware-pipelines.md) — Provides a chain of composable middleware filters to process cross-cutting concerns in the request lifecycle. ([source](https://revel.github.io/))
- [Request Middleware](https://awesome-repositories.com/f/software-engineering-architecture/request-middleware.md) — Uses request middleware to run custom logic before and after controller actions for cross-cutting concerns. ([source](https://github.com/revel/revel/blob/master/intercept_test.go))
- [Application Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management.md) — Coordinates the execution of specific initialization and shutdown tasks in a defined order. ([source](https://github.com/revel/revel/blob/master/server_test.go))
- [Application Text Translation](https://awesome-repositories.com/f/software-engineering-architecture/infrastructure-configuration-languages/multi-language-support/multilingual-site-support/application-text-translation.md) — The project looks up and formats messages for specific locales using translation files. ([source](https://github.com/revel/revel/blob/master/i18n.go))
- [Controller Lifecycle Hooks](https://awesome-repositories.com/f/software-engineering-architecture/lifecycle-event-hooks/controller-lifecycle-hooks.md) — Executes predefined logic at specific stages of the controller lifecycle, including before, after, and panic events.
- [Request Context Management](https://awesome-repositories.com/f/software-engineering-architecture/request-context-management.md) — Provides mechanisms for tracking parameters and session state across the request lifecycle. ([source](https://github.com/revel/revel/blob/master/controller.go))

### Web Development

- [Full-Stack Web Frameworks](https://awesome-repositories.com/f/web-development/full-stack-web-frameworks.md) — Provides a full-stack Go framework with integrated routing, template rendering, and session management.
- [Go Web Frameworks](https://awesome-repositories.com/f/web-development/go-web-frameworks.md) — A full-stack framework for building web applications using the Go language with a focus on developer productivity.
- [HTTP Request Handling](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-request-handling.md) — Provides comprehensive utilities for parsing incoming HTTP requests to extract headers, locales, and query parameters. ([source](https://github.com/revel/revel/blob/master/http.go))
- [HTTP Response Handling](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-response-handling.md) — Implements tools for configuring HTTP response headers, status codes, and content types. ([source](https://github.com/revel/revel/blob/master/http.go))
- [Routing and Request Handling](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/routing-request-handling.md) — Provides a comprehensive system for mapping network traffic to controllers and managing the request-response lifecycle. ([source](https://github.com/revel/revel/blob/master/server_test.go))
- [Controller Action Resolution](https://awesome-repositories.com/f/web-development/controller-action-resolution.md) — The project maps incoming web requests to specific controller methods by resolving the target action. ([source](https://github.com/revel/revel/blob/master/controller_type.go))
- [Controller-Action Routing](https://awesome-repositories.com/f/web-development/controller-action-routing.md) — Maps incoming HTTP request paths and methods to specific Go controller methods for execution.
- [Dynamic Template Rendering](https://awesome-repositories.com/f/web-development/dynamic-template-rendering.md) — Performs runtime evaluation of templates with dynamic data to generate HTML output for web pages at scale. ([source](http://revel.github.io/))
- [Go API Toolkits](https://awesome-repositories.com/f/web-development/go-api-toolkits.md) — A comprehensive set of tools for handling routing, parameter binding, session management, and validation in Go.
- [HTML Response Renderers](https://awesome-repositories.com/f/web-development/html-rendering/html-response-renderers.md) — Produces dynamic HTML responses by combining templates with data arguments and serving them with correct HTTP headers. ([source](https://github.com/revel/revel/blob/master/fakeapp_test.go))
- [HTML Templating Engines](https://awesome-repositories.com/f/web-development/html-templating-engines.md) — Implements a general-purpose HTML templating engine to generate dynamic content by injecting data and conditional logic into views. ([source](https://github.com/revel/revel/blob/master/template_functions.go))
- [HTTP Server Configuration](https://awesome-repositories.com/f/web-development/http-server-configuration.md) — Manages network parameters including HTTP/HTTPS ports and SSL certificates to control server exposure. ([source](https://github.com/revel/revel/blob/master/revel.go))
- [Reflection-Based Data Binding](https://awesome-repositories.com/f/web-development/reflection-based-data-binding.md) — Implements automatic mapping of raw request parameters and JSON bodies into typed Go variables using reflection.
- [Server-Side Rendering](https://awesome-repositories.com/f/web-development/rendering-templating/server-side-rendering.md) — Generating dynamic web pages by injecting data into templates on the server before sending them to the browser.
- [Request Data Binding](https://awesome-repositories.com/f/web-development/request-data-binding.md) — Automatically unmarshals raw JSON request bodies into structured Go objects. ([source](https://github.com/revel/revel/blob/master/params.go))
- [Request Parameter Parsers](https://awesome-repositories.com/f/web-development/request-parameter-parsers.md) — Translates string parameters from URLs and requests into Go primitives and slices. ([source](https://github.com/revel/revel/blob/master/binder_test.go))
- [Request Validation](https://awesome-repositories.com/f/web-development/request-validation.md) — Enforces data constraints and validates incoming URL and form parameters before business logic execution. ([source](https://github.com/revel/revel/blob/master/controller.go))
- [HTTP Routing](https://awesome-repositories.com/f/web-development/routing-systems/http-routing.md) — Maps HTTP methods and URL paths to specific controller actions to direct web traffic. ([source](https://github.com/revel/revel/blob/master/router.go))
- [Server Initialization Hooks](https://awesome-repositories.com/f/web-development/server-initialization-hooks.md) — Initializes the application environment, loads templates, and boots the HTTP engine upon startup. ([source](https://github.com/revel/revel/blob/master/server.go))
- [Server-Side Rendering Engines](https://awesome-repositories.com/f/web-development/server-side-rendering-engines.md) — A system for generating dynamic HTML pages using Go templates and a pluggable rendering engine.
- [Template Execution Engines](https://awesome-repositories.com/f/web-development/template-execution-engines.md) — Renders templates with provided data to return the final HTML response as a string. ([source](https://github.com/revel/revel/blob/master/util.go))
- [Unified Parameter Extraction](https://awesome-repositories.com/f/web-development/unified-parameter-extraction.md) — Extracts data from URL queries, route patterns, and form bodies into a unified structure for easy access. ([source](https://github.com/revel/revel/blob/master/params.go))
- [Web Server Hosting](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers/web-server-hosting.md) — Provides the core mechanism to listen for incoming HTTP requests on a network address and route them to handlers. ([source](https://github.com/revel/revel/blob/master/server_adapter_go.go))
- [Request Simulators](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/routing-request-handling/http-request-handlers/request-simulators.md) — Simulates request and response cycles to verify web handler logic without requiring a live server. ([source](https://github.com/revel/revel/blob/master/revel_test.go))
- [Controller Lifecycle Hooks](https://awesome-repositories.com/f/web-development/controller-lifecycle-hooks.md) — Implements hooks to execute predefined logic before, after, or during panics within the controller lifecycle. ([source](https://github.com/revel/revel/blob/master/CHANGELOG.md))
- [Panic Recovery](https://awesome-repositories.com/f/web-development/error-handling/panic-recovery.md) — The project intercepts runtime crashes to log stack traces and serve a formatted error page. ([source](https://github.com/revel/revel/blob/master/panic.go))
- [Diagnostic Error Pages](https://awesome-repositories.com/f/web-development/error-handling/panic-recovery/diagnostic-error-pages.md) — The project captures runtime panics and extracts source code lines and stack traces for diagnostic error pages. ([source](https://github.com/revel/revel/blob/master/errors.go))
- [File Streaming](https://awesome-repositories.com/f/web-development/file-streaming.md) — Streams files directly from the local filesystem to the client based on the requested path. ([source](https://github.com/revel/revel/blob/master/fakeapp_test.go))
- [Content Translation](https://awesome-repositories.com/f/web-development/internationalization-localization/translation-management-platforms/site-localization/multi-language-content-delivery/locale-based-filters/content-translation.md) — Translates and localizes user-facing application text for different languages and regional settings. ([source](https://revel.github.io/))
- [Middleware Configuration](https://awesome-repositories.com/f/web-development/middleware-configuration.md) — Provides interfaces for registering and ordering the sequence of middleware filters applied to controllers. ([source](https://github.com/revel/revel/blob/master/filterconfig.go))
- [RESTful API Development](https://awesome-repositories.com/f/web-development/restful-api-development.md) — Creating web services that process JSON requests and return structured data for client applications using Go.
- [Template Engine Abstractions](https://awesome-repositories.com/f/web-development/template-engines/template-engine-abstractions.md) — Provides an abstraction layer that allows multiple template engines to be used interchangeably based on file extensions. ([source](https://github.com/revel/revel/blob/master/template_engine.go))
- [Template Logic](https://awesome-repositories.com/f/web-development/template-logic.md) — Provides syntax and control structures to manage view-level state and retrieve session data within templates. ([source](https://github.com/revel/revel/blob/master/template_functions.go))
- [Static Asset Serving](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-server-capabilities/static-asset-serving.md) — Optimizes the delivery of static files and directory listings from a public directory to clients. ([source](https://github.com/revel/revel/blob/master/server_test.go))
- [WebSockets](https://awesome-repositories.com/f/web-development/websockets.md) — Implements persistent bidirectional communication channels using the WebSocket protocol. ([source](https://github.com/revel/revel/blob/master/server-engine.go))

### Development Tools & Productivity

- [Hot-Reloading Systems](https://awesome-repositories.com/f/development-tools-productivity/hot-reloading-systems.md) — Monitors the workspace for file changes and automatically restarts the application to apply updates. ([source](https://github.com/revel/revel/blob/master/CHANGELOG.md))
- [Live Reloading Environments](https://awesome-repositories.com/f/development-tools-productivity/live-reloading-environments.md) — A development environment that automatically compiles code and refreshes templates upon file changes without manual restarts.
- [Automatic Template Reloading](https://awesome-repositories.com/f/development-tools-productivity/automatic-template-reloading.md) — The project watches template files for changes and refreshes them in real-time to update the interface without restarting the server. ([source](https://github.com/revel/revel/blob/master/server.go))
- [State-Persistent Reloading](https://awesome-repositories.com/f/development-tools-productivity/hot-reloading-systems/state-persistent-reloading.md) — Monitors file changes to trigger an immediate application refresh and update state without manual intervention. ([source](https://github.com/revel/revel/blob/master/watcher.go))
- [String Localization](https://awesome-repositories.com/f/development-tools-productivity/localization-support/string-localization.md) — The project retrieves localized strings based on a language code with support for argument substitution and XSS protection. ([source](https://github.com/revel/revel/blob/master/i18n_test.go))

### Networking & Communication

- [Automatic Parameter Mapping](https://awesome-repositories.com/f/networking-communication/url-parameter-parsers/automatic-parameter-mapping.md) — Maps parsed request parameters directly to typed variables within the application code. ([source](https://github.com/revel/revel/blob/master/params_test.go))
- [Lifecycle Request Handlers](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-execution/lifecycle-request-handlers.md) — Executes custom logic at specific stages of the request-response cycle for authentication and logging. ([source](https://github.com/revel/revel/blob/master/before_after_filter.go))
- [WebSocket Managers](https://awesome-repositories.com/f/networking-communication/websocket-managers.md) — Manages the sending and receiving of messages over persistent WebSocket connections for real-time communication. ([source](https://github.com/revel/revel/blob/master/CHANGELOG.md))

### Security & Cryptography

- [Cookie Signing Utilities](https://awesome-repositories.com/f/security-cryptography/cookie-security/cookie-signing-utilities.md) — Appends cryptographic signatures to browser cookies using a secret key to ensure session data integrity. ([source](https://github.com/revel/revel/blob/master/revel.go))
- [Session & Cookie Handlers](https://awesome-repositories.com/f/security-cryptography/session-cookie-handlers.md) — Maintains user sessions and state across multiple requests using signed client-side cookies. ([source](https://github.com/revel/revel/blob/master/session_adapter_cookie.go))
- [Session Management](https://awesome-repositories.com/f/security-cryptography/session-management.md) — Decodes session cookies to maintain persistent user state across requests and provides data to templates. ([source](https://github.com/revel/revel/blob/master/session_engine.go))
- [Web Session Management](https://awesome-repositories.com/f/security-cryptography/web-session-management.md) — Persists client state across multiple HTTP requests using server-side or cookie-based stores to maintain a stateless web tier. ([source](https://revel.github.io/))
- [Network Encryption](https://awesome-repositories.com/f/security-cryptography/network-encryption.md) — Encrypts network communication by loading SSL certificates and keys to serve the application over HTTPS. ([source](https://github.com/revel/revel/blob/master/server_adapter_go.go))
- [Method Interceptors](https://awesome-repositories.com/f/security-cryptography/security/policies/access-control/method-interceptors.md) — Provides hooks to execute specific logic before or after controller method invocations. ([source](https://github.com/revel/revel/blob/master/controller_type.go))

### User Interface & Experience

- [HTML Template Renderers](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/html-template-renderers.md) — Generates dynamic HTML responses by injecting data into templates through a pluggable rendering engine.
- [Internationalized Content Renderers](https://awesome-repositories.com/f/user-interface-experience/content-formatting/internationalized-content-renderers.md) — Generates localized HTML views with built-in support for translation and regional time formatting. ([source](https://github.com/revel/revel/blob/master/CHANGELOG.md))
- [Input Validation Rules](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/form-validation/input-validation-rules.md) — Provides declarative rules to validate that user input meets required criteria with default error messages. ([source](https://github.com/revel/revel/blob/master/CHANGELOG.md))

### Data & Databases

- [Data Caching](https://awesome-repositories.com/f/data-databases/data-caching.md) — The project stores frequently accessed data in memory or external clusters to decrease response times and reduce database load. ([source](https://revel.github.io/))
- [JSON Response Serializers](https://awesome-repositories.com/f/data-databases/data-structures/structured-return-objects/json-response-serializers.md) — Automatically converts server-side data structures into JSON strings for API response serving. ([source](https://github.com/revel/revel/blob/master/fakeapp_test.go))

### DevOps & Infrastructure

- [Background Job Processing](https://awesome-repositories.com/f/devops-infrastructure/background-job-processing.md) — Executes asynchronous tasks independently of the main request-response cycle to prevent UI blocking. ([source](https://revel.github.io/))
- [Application Settings Management](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/application-settings-management.md) — Manages application configuration by loading and overriding parameters from defaults and user-supplied files. ([source](https://github.com/revel/revel/blob/master/revel.go))
- [View Argument Mapping](https://awesome-repositories.com/f/devops-infrastructure/template-variables/view-argument-mapping.md) — Assigns data to a view arguments map that is automatically available for rendering within templates. ([source](https://github.com/revel/revel/blob/master/controller.go))

### Programming Languages & Runtimes

- [In-Memory Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/in-memory-compilation.md) — Compiles code and templates in-memory on save to reflect changes immediately in the browser. ([source](https://revel.github.io/))

### Part of an Awesome List

- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Full-stack, high-productivity web framework.
