Uniscala Granite
Granite is becoming quite stable and a beta will be released soon. Curious developers can check it out with SVN from the SourceForge project. To get started, see the brief developer guide. Please contact us if you have any questions or problems.
Uniscala Granite is a lightweight framework for the rapid development of web applications. It includes everything you need to get your solution up and running, including an embedded object database that avoids the need for SQL or Object-Relational Mappings, and a refreshing lack of external configuration in XML files.
Massive scalability, clustering and no-SQL databases seem to be the flavour of the moment. However, if you just want a modest data-driven application you don't necessarily want to deal with all of that complexity. "Lightweight" means that Granite is not aimed at gargantuan applications such as Facebook or Flickr, but rather the kinds of application that small and medium-sized enterprises might be interested in — such as staff directories, membership databases, online shops, and so on.
Technologies used in Granite include:
- Scala - The Scala programming language is used throughout Granite. Scala fully interperates with Java APIs, and compiles to Java byte code. From their website: "Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages, enabling Java and other programmers to be more productive. Code sizes are typically reduced by a factor of two to three when compared to an equivalent Java application."
- DB4O - Versant's DB4O Java Database is embbeded into Granite as the primary database. Its fast and powerful quering interfaces completely avoid the need for SQL. There is no need to install, configure, and integrate an external database to develop a Granite application.
- Wicket - Apache Wicket is a scalable application framework for the web front end. It by-passes much of the complexity of J2EE applications, and also avoids J2EE's penchant for XML configuration files. This is an appraoch that we love, and use it as much as possible in Granite.
- JQuery - almost a "must have" for any modern application, the JQuery Javascript library is included by default in Granite applications. Close integration with Wicket is also provided through the third-party Wiquery extension. JQuery UI's ThemeRoller themeing is also used intensively.
Complex configuration in myriads of XML files is typical of J2EE applications. However, this approach makes the task of development akin to learning multiple languages, and splits important information between code and XML. Inspired by Wicket's avoidance of this XML confusion, we have chosen technologies and approaches that do not require this added burden.
Granite applications can be built with Maven and dropped into a container such as Tomcat or JBoss, or run with a stand-alone server such as Jetty. Since there is no database to configure, you are up and running in no time. Developers using Maven can run their Granite application directly from Maven using Jetty for incredibly easy testing and demonstration.