Menu

Home

Lelanthran K. Manickum Lelanthran

Description

Extended Library for ANSI C99

** Why Is libxc needed? **
There doesn't exist a library for ANSI C99 for common data containers, such as vectors, trees, etc. There also also doesn't exist a library for common functionality, such as error reporting/logging, string functions, configuration management (reading config files), etc...

The programmer working in C doesn't have anything analogous to the Boost C++ library. The extended C library is intended to make some headway into providing this functionality. To ensure unrestricted usage the libxc project is provided under the very permissive BSD license. If you need a different license then please send me a request (lelanthran at gmail) and I'll do my best to satisfy your request.

** What's completed? **
As of writing, the following modules, totalling over 75 functions, have been written and tested:
1. Memory accounting/tracking (complete)
2. String operations (mostly complete)
3. Vectors (complete)
4. Trees (complete)
5. Dictionary arrays (complete)
6. Configuration management (complete)
7. Dynamic Loading functions for .dll and .so (complete)
8. Simple sockets wrapper (complete)
9. Sparse arrays

The build process under Linux using the GNU toolchain is fully completed and produces a libxc.so library file and headers, although installation is left up to the user. The build process for Windows (msys/mingw32) is completed, but does not yet produce libxc.dll; currently an Msys compatible libxc.so library is produced but the process will be changed to produce libxc.dll when time permits.

In addition, much of the documentation, including copious examples, is completed for all of the above as well using doxygen. You can view the current API documentation in the following ways
1. ** Browse HTML
2. ** As a single PDF
3. ** Download all docs
4. ** Browse manpages

** What's coming soon? **
In addition to a build process for msys/mingw32/windows, the following libraries are intended to follow soon:
1. Xml parser
2. A few example programs
...
And many more (eventually). Due to the portability requirement, all libraries are written in pure C with no external dependencies.

** What's currently being worked on? **
Currently, I'm attempting to add in a few more examples to the documentation. While the docs are mostly complete and need no further explanation, all good manpages have short examples, even if they're only pseudocode examples.

While I sporadically add examples to the existing documentation, I will also be adding functionality to the incomplete libraries and the "Coming Soon" libraries.

A full program sporting all of the power that libxc brings to the developer is already under consideration.

** I found a bug, where can I send the report/patch/flame to? **
Bugs are an unfortunate side-effect of software. While all developers aim to produce as little bugs as possible per line of code, a few always get through. If you have one, please send a detailed report (with output from valgrind if possible) to lelanthran at gmail and I'll do my best to get to it when I can. I'm new to sourceforge , but once I figure out how to get the ticketing system going, you can create bug reports via that interface.

Project Admins:


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.