Aranha

Aranha is a web application development platform. Aranha means 'Spider' in portuguese.

A lovely person (who wishes to remain anonymous) had a blast of inspiration and provided us with the basics of our new funky logo which can be seen in the top left of the page, as the background, and (where supported) as the site's 'favourites icon'.

Note that this page is very very temporary -- We'll be designing a real site as soon as a certain someone gets his wiki implementation done, honest.


We now have some "official" powered-by icons... If anyone wants to do some nicer ones, we'd be very grateful. You can get a useful xcf file here in bzip2 compressed format.


A sneak peek at some of our high-level plans for Aranha:

  1. Process manager -- Aranha currently has a fixed-child-count pool of workers which can never grow or shrink. By creating a more powerful dynamic process manager, Aranha will be able to react to changes in site-traffic.
  2. HTML Templating -- Aranha currently has no concept of a template for the pages it is serving. The introduction of a templating system will be useful as most sites have a standard design which they then apply to all pages. Note:This has been subsumed into the betty project

Historical information... Historical high-level plans (I.E. completed ones)
  1. Lua 5.0 -- Aranha will be ported to Lua 5.0.
  2. HTML Cruncher -- A system to allow buffered mode scripts to crunch their HTML before writing it to the client
    Update: Change level 232 introduces the cruncher code itself
    Update: Change level 233 provides support for it in the buffered page pipeline
    Update: Change level 234 includes support to disable it with either: __do_crunch = 0; or suppress_crunching()
  3. Cached DB Handles -- Database connects are slow. By caching handles aranha will offer benefits over connecting each time a request is made.
    Update: Change level 227 introduces a basic db cache. We are currently working on a way to LRU expire the entries so that the cache will throw away older un-used values
    Update: Change level 228 introduces LRU functionality and a db:nocache() function to flush an entry out of the cached_handles list. Documentation to follow in another change.
  4. dprint interpolation -- Currently dprint allows an arbitrary lua expression and interpolates it into the output. If the interpolation expression is a simple variable name, then it is looked up in the locals entries for the function stack. Currently the complex expression form can't use that. By using tag methods on the globals table, we hope to allow complex expressions to also use local variables.
    Update: Change level 231 introduces a version of __get_local which tells you even if a local has the value 'nil' and a dprint which can use locals and globals in complex expressions. -- The __getValue and __read_value routines operate entirely from upvalues and local variables, making them ultra-quick.
  5. Loadable Modules -- Aranha should be able to load binary modules into a running copy on the fly, allowing people to write extensions for their sites, without recompiling the main aranha binary This is now done
  6. CodeCache -- A shared precompiler which aranha processes can use to improve speed by caching code to be runi This has been ported to Lua 5.0 and works