Last update April 14, 2006

Phobos /
Unix CLibrary Port

Unix C library to D porting

Author/Contact: Juanjo Álvarez Martínez MAIL juanjux (AT)

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.


Apparently, this particular project never got off the ground, but I think some of the C library headers have been ported as part of the Ares project ( DsourceProject:ares). -- JustinCalvarese

FrontPage | News | TestPage | MessageBoard | Search | Contributors | Folders | Index | Help | Preferences | Edit

Edit text of this page (date of last change: April 14, 2006 19:24 (diff))