Latest Changes (since Mar/2006)

  • 11/Jun/2006 (guara-0.7.5 on svn TRUNK)
  • Moved guara source tree to svn
  • May/2006
  • replaced JCL by SLF4J
  • Added template mapping (like struts) to determine which template should be rendered after controller/action execution
  • Moved Factory component to xingu-creator
  • 04/Mar/2006 (guara-0.7.3 on cvs HEAD)
  • Changed module Outcome code to String
  • Mapping methods on Outcomes
  • Exporting mock classes as part of the public API


Guara is a really simple and small web application framework, with a minimum set of dependencies that should serve as a base to build other frameworks.

Today we provide a basic configuration that resembles Turbine Functional Specification were applications are composed of modules (Actions and Screens) performing business and presentation logic and different template types (Layouts,Navigations and Screens) that are glued together by a template engine.


Guara was inspired by Turbine's accomplishments and mistakes.

One of the things that we really like about Turbine is the ability to build the page from different chunks (templates) of data, promoting greater code reuse at the template level.

Some of the the many things we don't like about Turbine are :

  • Turbine is too big: this is a problem with lots of web frameworks I have seem
  • Turbine is both a framework and a set off components/services put together
  • Most of the Turbine components are tied to the framework some how
  • Turbine enforces a particular workflow to serve the user request. Read more
  • Turbine page generation is complicated and difficult to customize or extend
  • Turbine removed support for Freemarker
  • Turbine doesn't provide a good module initialization scheme
  • Huge release cycles
Maybe, I'm giving the impression that I don't like Turbine, but I started to learn about frameworks using Turbine and developed more than 10 web applications using it and it's mailing list support. Thanks very, very much !


Guara tries to be as simple as possible. At it's core, the framework comprises :

Guara fulfills all user request executing a selected Pipeline.

This enables Guara to be particularly proper to ajax integration maximizing code reuse.