Introduction
************

claw is a comprehensive set of software that helps you to easily and quickly build and run web applications.

What does claw provide?
=======================

claw is currently made of six subprojects

  - claw-as The application server itself. The application server needs a connector to serve resources, such as web pages, through HTTP protocol. The application server comes with its own authentication system that lets you create both basic and form based authentication systems. It also has the capability to force the page rendering through the HTTPS protocol of pages that manage sensible data, using simple directives.

  - connectors Where http-service connectors are kept. Currently only HUNCHENTOOT connector is implemented. HUNCHENTOOT is a fast web application server written in common lisp that supports both HTTP and HTTPS protocols.

  - claw.i18n A simple yet powerful internationalization/localization module.

  - claw-html An advanced, powerful and simple web framework. claw-html is based on components, highly reusable building blocks that make easy and fast the creation of a web application. By using and creating new components, the developer can create robust and consistent web application with the minimal effort. Each component may inject into a page its own set of stylesheet and javascript files, and may come with its own class or instance javascript directives (a class directive is inserted only once into the page, while this is not true for an instance directive). This leads to the creation of very sophisticated components with a very little effort.

  - claw-html.dojo An extension of claw-html that integrates the http://www.dojotoolki.org ajax framework transparently. The integration with  dojo gives you the possibility to easily and quickly create full WEB 2.0 eye candy application with powerful and very user friendly UI.

The main aim of claw is `divide et impera', that means that dividing problems into small problems, let programmers work on different part of an application, creating ad hoc components for both generic and specific tasks.