[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: [ANN] LuCI - Framework for Embedded Development
- From: Steven Barth <steven@...>
- Date: Thu, 13 Nov 2008 17:12:08 +0100
we'd like to announce the LuCI Project ( http://luci.freifunk-halle.net ).
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 ( http://www.openwrt.org ) 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.
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
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 http://luci.freifunk-halle.net/WebUI/Screenshots ). 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