[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: [ANN] nixio 0.2 - General Purpose, POSIX and I/O library
- From: Steven Barth <steven@...>
- Date: Tue, 21 Apr 2009 20:06:43 +0200
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