Button

When we say that "the Kepler project aims to collaboratively create an extremely portable set of Web development solutions based on the Lua programming language, offering both flexibility and conceptual simplicity." what do we mean?

For those used to the Lua programming language and its community, features like portability, flexibility and simplicity are part of the game, but how can this explain what we are doing here?

The idea is not trying to create the new PHP or to take down Python or whatever. Even if that was conceivable, it would make no sense to try. Web development is a huge arena and there is space for everyone, we don't need to expend energy attacking the other players.

Depending on the problem you are trying to solve, the natural tool for it emerges naturally, there is no need to force anything. So assuming the other platforms are good in what they do, why is one based on Lua different?

The answer is related to the above "mission statement". Being extremely portable while offering flexibility and conceptual simplicity is not an easy thing to do and this is our winning point.

Lua fits

Lua can run in every system that runs PHP, Python, J2EE or .Net, but it can also run on systems where it would not even make sense to try to install one of those platforms. Have you ever tried fitting PHP or Ruby on a device with 1M RAM? Even if you manage to do it, there is no much space left for application and data.

Surely there are lots of libraries or frameworks that fit into that tiny space, but then those tend to be too low level and to use languages not very appropriate for Web development. Using Lua means having a full fledged language at your disposal from the start.

But then maybe you are not developing for such a tiny device, so why care about memory usage? You've got a point but we think that even if running on a multicore CPU with Apache, Lua continues to offer the same flexibility and simplicity as in the constrained scenario.

Kepler is about modularity

This is where our modular Architecture gets into the picture. Instead of having a "one size fits all" model like most of the current web development platforms do, the Kepler Project chooses the opposite direction. You can choose what gets in and what stays out.

Surely that makes things harder for newcomers, but if you prefer to fine tune your setup go ahead!

This modular architecture is used from the very first layer. WSAPI can use different lauching models (CGI, FastCGI and others) over different Web servers (Apache, IIS, thttpd, Xavante and others) with different web metaphors (Orbit for a MVC based page generation, Sputnik for something more CMS like, CGILua for old school page based applications).