web developer & system programmer

coder . cl

ramblings and thoughts on programming...


caffeine

published: 21-05-2007 / updated: 21-05-2007
posted in: projects
by Daniel Molina Wegener

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.


No coments yet.

post a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>