Revel

A high-productivity, flexible web framework for the Go language.
Latest Release:
v0.21.0 on 2018-10-30
Go: v1.8+ required


Hot Code Reload

Edit, save, and refresh. Revel compiles your code and templates for you, so you don't miss a beat. Code doesn't compile? It gives you a helpful description. Run-time code panic? Revel has you covered.

Engine Driven

Revel has the most flexibility with your choice of custom Server, Session and Template engines. if you have a custom use scenario no more need to hack the code. All components are selectable inside the application configuration - your development and production environments simply work.


Flow Control

Revel is built around composable middleware called filters, which implement nearly all request-processing functionality. Developers have the freedom to replace the default filters with custom implementations.

Migration Friendly

Already have an application started ? No problems, migrate easily to Revel by passing the path that you want your mux to handle to Revels Mux, and all requests for that path will be passed to that your Http muxer.

Reusable MVC Components

Revel has modules. These are reusable MVC components that you can implement across all your projects. No need to copy and paste your code with these.

Dep Enabled

Revel implements Go's dependency management tool dep. Making consistent builds a breeze.

Stateless

Revel provides primitives that keep the web tier stateless for predictable scaling. For example, session data can be stored in the user cookie, and the cache is backed by a memcached cluster, redis or in-memory.


Quick Start

Revel has some sample applications to demonstrate typical usage.

The commands at right will:

  • Install Revel into your GOPATH
  • Install and Build the Revel command-line tool
  • Install the sample applications
  • Run the Chat sample application
  • Open http://localhost:9000/

Read how the chat demo is implemented.

# get 'revel' framework and command
go get github.com/revel/cmd/revel

# Get the example apps
git clone https://github.com/revel/examples \
$GOPATH/src/github.com/revel/examples

# revel the chat app
revel run github.com/revel/examples/chat
# create a new app and run
revel new github.com/myaccount/my-app

Routing
A simple declarative routing syntax. Type-safe reverse routing.
Controllers
Revel organizes endpoints into Controllers. They provide easy data binding and form validation.
Templates
Revel makes Go Templates simple to use at scale.
Interceptors
Register functionality to be called before or after actions. They can be activated per Controller.
Filters
More general functionality can be implemented with Filters.