Author/Contact: Juanjo Álvarez Martínez MAIL juanjux (AT) yahoo.es
Project Page: None
Download URL: None
Mailing list: None
This project pretends to port all or almost all of the Unix C api to the D language adapting it to use D features like inout/out/char instead of pointers, exceptions instead of errno kludgy polling and superior data structures. Some of the API should also be wrapped in classes (not all, only where it makes sense).
Status: Most of the standart Unix C api functions, constants and data structures have been exported and adapted to D (most of them are a lot easier to use and understand than the C versions, only two or three using pointers for example).
Almost all the functions have now error control based on exceptions (all exceptions launched by this lib inherit from PosixAPIException so you can catch all with a single catch and check the error code if you want, but there are also other exception names inheriting from PosixAPIException like PosixMemoryException, PosixFileSystemException, etc).
I've also finished splitting the lib into more, more manageable, files, currently: error.d, filesystem.d, ipc.d, net.d, process.d, select.d, sysinfo.d, terminal.d, time.d, unixexceptions.d and unix.d.
I've still to put names to the huge list of enums that contain the Unix-libc constants and to adapt the functions to use (when applicable) the type of the enums instead of just generic data types (= better function input validation by the compiler, less programmer errors)
There is currently not object oriented code in the lib altought I would like to define at least the following classes: PosixTerminal, PosixSemaphore, PosixFifo, PosixPipe, PosixSharedMemory, PosixSignalHandler, PosixProcess. There will be no class-wrappers (in this lib) to more portable features like sockets and mmaped files since those belong to std (for mmaped files see Mathew Wilson std.mmfile module).
Finally the unittest are not written.
In need of help?: Yes, I need help for aliasing tons of types to made the lib work on 64 bits machines and in other Unixes other than Linux (version(BSD), etc...). I will also need help with testing.