Luaetta

Luaetta is a suite which consists of an unique Lua application for the web and a Lua library which eases developing of web applications in Lua. Written in C++, this is similar to PHP but more secure, faster and a lot more flexible.

Project Start: August 2007
Project Status: in development

Currently there are two source bases, neither officially released but some people have it.

Luaetta
Luaetta-ng

Current lack of a lot that would one call web framework, just some URL handling. Stuff like theming, database access and a lot stuff is still evaluated.

Ideas

Luaetta is split up in two parts. The Luaetta executable which is the FastCGI component and Luaetta Lua library.

Luaetta executable:

Luaetta library:

Requirements for a templating system

  • Should seperate presentation and logic as much as possible
  • Seperate the role of the designer and the developer
  • Template creation should be as simple as possible, and not too far from creating a normal (X)(HT)ML page
  • Exposing information to the template from the code should be easy

Transfer HTTP POST data to lua

Luaetta FS#9

Links:

Requirements:

  • handling forms and binary data, even mixed
  • don't overload the lua stack with large binary blobs
  • easy handling of long upload processes

Solutions:

All solutions refer to this example:
  1. Content-Type: multipart/related; boundary=f93dcbA3; type=application/xml; start="<980119.X53GGT@example.com>"
  2. Content-Length: xxx
  3.  
  4. --f93dcbA3
  5. Content-Type: application/xml; charset=UTF-8
  6. Content-ID: <980119.X53GGT@example.com>
  7.  
  8. <?xml version="1.0"?>
  9. <uploadDocument>
  10. <title>My Proposal</title>
  11. <author>E. X. Ample</author>
  12. <summary>A proposal for a new project.</summary>
  13. <notes image="cid:980119.X17AXM@example.com">(see handwritten region)</notes>
  14. <keywords>project proposal funding</keywords>
  15. <readonly>false</readonly>
  16. <filename>image.png</filename>
  17. <content>cid:980119.X25MNC@example.com</content>
  18. </uploadDocument>
  19. --f93dcbA3
  20. Content-Type: image/png
  21. Content-Transfer-Encoding: binary
  22. Content-ID: <980119.X25MNC@example.com>
  23.  
  24. ...Binary data here...
  25. --f93dcbA3
  26. Content-Type: image/png
  27. Content-Transfer-Encoding: binary
  28. Content-ID: <980119.X17AXM@example.com>
  29.  
  30. ...Binary data here...
  31. --f93dcbA3--

Solution A

A second argument for the onRequest() hook containing a table with an ID and MIME-type of each content.