Skip to content
Web framework and a templating engine for Reia programming language.
Erlang Perl JavaScript Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app_example
application_example move #3 Nov 28, 2010
application_example_classic
behavior behave is now first-class command Apr 13, 2009
bin shaping up ryan for new reia Oct 14, 2010
deps
src move #3 Nov 28, 2010
.gitignore
LICENSE
Makefile move #3 Nov 28, 2010
README.md some doc changes Jul 27, 2009
STATUS current state and to do info Apr 12, 2009

README.md

Web applications with Ryan and Reia

Ryan is a Reia/Erlang BEAM based web framework. It allows you to create web applications with clean and short code.

Ryan consists of:

  • Session module
  • Routing module
  • Behave (RSpec-like testing tool)
  • Template engine adapter (Retem)
  • HTTP server adapters (YAWS, Mochiweb)
  • Database adapters (CouchDB)

Prerequisites

Erlang/OTP R12B-3 or higher, Reia language, CouchDB 0.9 Leex Mochiweb erlang_couchdb CouchDB adapter

Building

Run the following from Ryan source folder to build it: sudo make install

That will install ryan libraries into Erlang lib folder and ryan executable file into /usr/local/bin

Running an example application

Run: cd application_example ryan

Surf to: http://localhost:8001/app

You can specify a port number to run on in command line: ryan -p 8080

Modify Todo controller, implement or change actions Create your own controllers and see the results without the need to even reload web page. Enjoy!

Routing

Following REST idiom, Ryan provides the ability to parse any url and run the corresponding controller.

http://host:post/store/fruits/show/122

will be passed to 'store' application, 'fruits' controller, 'show' action (method), providing it with cookie data, http request method (~GET, ~PUT, ~POST, ~DELETE, ~UPDATE etc.), and parsed query data list.

Controllers

Controllers are Reia modules. They reside in application_name/controllers/ folder. By default each controller method is available to web application user unless otherwise defined in routing schema.

Views

Views can be Retem templates (retems) and are placed in application_name/views/ folder.

Models

Models are object definitions that can be stored, retrieved and queried from storage systems. Only CouchDB is currently supported.

Useful links

Ryan@github Reia language home Dev blog Mailing list

This work wouldn't be possble without these guys

  • Tony Arcieri : Reia creator
  • Robert Virding : Excellent lexer library
  • Nick Gerakines : CouchDB adapter
  • Dmitry Chernyak : Smart JSON library refinement
  • Sean Cribbs : Huge work on PEG parser
  • many more

Authors

You can’t perform that action at this time.