lua-users home
lua-l archive

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


Hello Lua users,

I'd like to announce "nixio", a multi-functional utility library for Lua for 
dealing with common programming tasks. It is designed especially for embedded 
development to serve as an extended standard library but can of course be used 
for other tasks as well.

nixio offers high-level functions as well as many low-level POSIX functions 
following the calling style - where applicable - of their corresponding C 
functions.


Featue overview:

All Platforms:
* Low-level file I/O functions with large file support
	reading, writing, seeking, locking, syncing, attributes, pipe support
* Filesystem functions
	Low-level copying / moving / removing of files, reading attributes
	writing access and modification times, directory traversal / creation
	and deletion, file mode chaging, hardlinks, parsing of paths,
	high-level recursive copying / moving / deleting / creation of directories
* Basic process control
	read / change working directory, signal handling
	reading / writing environment variables, setting umask, exec/e/p
* Bitoperators and bitfield uitility functions (backward-compatible to bitlib)
* Binary utility algorithms
	base64, crc32, hexlify
* Cryptographical hashing and hmac support
	sha1, md5
* IPv4, IPv6 and UNIX socket support
	client and server functionality, advanced options, non-blocking I/O,
	event multiplexing (poll)
* TLS v1.0 socket support
	client and server functionality
* Unified low-level and high-level I/O API for files, sockets and TLS-sockets
	read / write (unbuffered), readall / writeall (buffered), close
	blocksource iterator, linesource iterator, sink (LTN12 compatible)


Extended features for POSIX:
* Extended filesystem functions
	symlinks, changing owner and group, file system statistics, globbing
* Extended process control
	sending signals, reading / changing user and group IDs,
	forking / waiting for child processes, resetting process priority
* Syslog support
	opening, closing, writing, setting logmask
* Extended I/O functions
	general non-blocking file descriptors, general poll() for file descriptors,
	"zero-copy" kernel-mode I/O: sendfile, splice (Linux)
* System, user, group and shadow-file inspection


I did not have the time to test everything deeply yet - especially not on non-
Linux platforms - so be warned there are probably some (or more ;-) ) glitches 
and bugs here and there.


Source code: http://dev.luci.freifunk-halle.net/nixio/nixio-0.2.tar.bz2
API Documentation: http://dev.luci.freifunk-halle.net/nixio/doc/
SVN: http://svn.luci.subsignal.org/luci/trunk/libs/nixio/
Trac (part of the LuCI Project): http://luci.subsignal.org/
License: http://www.apache.org/licenses/LICENSE-2.0.html

Tested to compile on:
* Linux / glibc 2.9, Linux / uClibc 0.9.29
* OpenSolaris 2008.11
* FreeBSD 7.1
* Windows XP SP3 (via MinGW, no extended POSIX features, probably no support 
for Windows versions older than XP SP1)

Cryptography support can be provided by:
	OpenSSL (standard, all platforms, full featureset)
or
	axTLS (POSIX only, for embedded development, limited support,
	but axTLS compiles to < 80KB instead of the > 1MB of openssl)



Looking forward to read your feedback.

Regards
Steven