lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Hello Folks,
we'd like to announce the LuCI Project ( ).
LuCI is a collection of free Lua software for embedded devices. It includes 
several useful tools and libraries for embedded developers as well as an MVC-
Webframework. LuCI will be part of the upcoming release of the embedded Linux 
distribution OpenWrt ( ) and several derivates serving 
as an application framework and web user interface.

LuCI consists of a set of Lua libraries and modules written in Lua (and C) 
bundled together with a buildsystem and SDK for Unix based operating systems.
LuCI was written from scratch and depends on Lua 5.1 with bitlib and luaposix 
(and partly on luasocket). It also includes modified versions of coxpcall and 

Most of the LuCI libraries are well-documented ( see http://dev.luci.freifunk- ).

A brief overview over LuCI modules and libraries.
  Core Libraries:
    luci.util:		OOP model and helper functions for tables, sorted iterators,
			serialization and common tasks
    luci.ip:		IPv4/v6 calculation and transformation library
    luci.ccache:	Bytecode-caching module loader
    luci.fs:		Wrapper and highlevel fs-functionality on top of luaposix
  HTTP 1.1 stack (luci.http.protocol):
    ltn12 based header parsing and URL / Mime De- and Encoding, helpers for
    HTTP/1.1 functionality

  JSON De-/Encoder (luci.json):
    Fast and lightweight ltn12 based JSON De- and Encoder

  System Libraries (luci.sys):
    POSIX / Linux / OpenWrt specific library for system, process, networking
    and user related tasks

    Object oriented lightweight webframework with a native CGI 1.1 interface 
(and optional an experimental coroutine based application server and gateway 
to wsapi). It includes libraries for i18n support, session based 
authentication, a tree based dispatcher, a compiling template engine and 
facilities for building, parsing and validating XHTML forms.

  LuCI Administration / Mini / RPC:
    A web user interface on top of the web framework to display information, 
statistics and configure OpenWrt using the Universal Configuration Interface ( 
see ). Can also publish parts 
of the LuCI API via JSON-RPC.

Most parts of LuCI - including the ones mentioned above - are licensed under 
the Apache License 2.0. However there are some other explicitely marked 
additional modules and contributions that are covered by other OSS licenses 
like GPL, BSD or MIT.

If you want to know more, please visit our project homepage:

As some of us are also OpenWrt developers we help maintaining a Lua-Patchset 
optimized for embedded devices including:
* The LNUM-patchset
* A patch for architecture independent bytecode that works on most modern 
platforms: tested on amd64, x86, mips, mipsel, armeb and powerpc
* Optimized opcode dispatching using computed goto
* Patches for embedding bitlib and luaposix into the Lua core

It can be found here:

Cyrus and the LuCI Developers