I haven't announced version 0.5 because there's nothing special to announce and I had no time to adjust documentation. It will remain in SNAPSHOT state. It had many minor improvements and fixes: I gave it a try in a real project. The only significant improvement is a new 'page' package.
For version 0.6, two significant improvements are planned:
You can monitor my progress on GitHub, although I don't plan to push 0.6 commits often.
lib.web is a thin, stateless, strictly typed web framework written in Scala on top of Java Servlet API. The name "lib.web" is just a shortcut for root package name: ru.dimgel.lib.web.
The major design concepts are:
First, lib.web aims not to cover all aspects of web application development. Its responsibility is web layer only. Currently lib.web contains:
My point is to keep the whole thing simple and focused. There are lots of tools for various aspects of web application development, and that's great. I dislike solid "all-in-one" frameworks for their lack of flexibility and have no plans about inventing another one.
Statelessness is a requirement for good upward and downward scalability. Particularly, for effective work under strong RAM limitations (e.g. VPS).
In lib.web, state management is isolated into separate extensible hierarchy of strategies. This allows application writers to use and mix large range of solutions, from 100% stateless to 100% stateful.
lib.web heavily uses strict typization and abilities Scala type system (particularly, its very powerful generics). This allows to minimize mistypings and to encode many API restrictions into type system. I believe you'll find it easy to do right with lib.web just because it would be very hard to do wrong. ;)
Although lib.web was initially designed as a wrapper over Servlet API, most of its auxiliary components (e.g. parameter validators or header parsers) can be used independently, with plain servlets or with any other framework.
See also: subpackages and internal dependencies