caffeine is a C programming language project. It’s a library oriented to services in a primary instance. Should be extended more in the future. The code is organized in modules, each module is documented in his own header using doxygen. At the TRUNK revision, I’ve coded the next modules:
POSIX threads support. IPC support (SVr4 semaphores, POSIX semaphores, messaging and shared memory) Data Packer Data Parser Process Pool Buffer Management File I/O Event Handling Networked I/O Event Handling Controled File I/O
The main goal of the library is that every line of code must be portable, in the case of non portable layers, must conform to an abstraction layer to gain generalized access to system specific functions. Also, the flags used by the compiler are:
-Wall -Wextra -Wshadow -pedantic -std=c99
Which means that any gnu specific code can’t be inserted in the project. Other goal is to use standards, the C dialect used in the project must be ISO/IEC C 9899/1999, and compatible with SUSv2 and SUSv3 specifications.
caffeine is a work in progress yet, but you can download the source and collaborate with the project through Subversion. caffeine sources are hosted in SourceForge. The project data is here:
SF.net Project Page SF.net SVN Repository Tree: https://caffeine.svn.sf.net/svnroot/caffeine/ Building tool: CMake Common C compiler: GCC Version Control System: Subversion
The development process is single, you download the code, build the code, test it, make contributions with code send the patches through the mailing lists and the patch will be evaluated. The copyright notices will be ensured in the AUTHORS file, like any GNU project.