cbase is a C library that simplifies systems software development on UNIX. The library includes functions for memory management, string parsing, sub-process execution, filesystem traversal, I/O, interfaces to IPC mechanisms including pseudo-terminals, shared memory, semaphores, and other facilities. It also has implementations of common dynamic data structures like linked lists, queues, stacks, and hash tables, a real-time scheduler similar in functionality to the cron daemon, and high-level APIs to Berkeley sockets and other networking functions. Full API documentation is included.
commonc++ is a C++ class library for developing cross-platform systems software for POSIX and Windows systems. It provides an intuitive, object-oriented abstraction and portability layer around common operating system facilities like threads, concurrency mechanisms, sockets, networking, shared memory and other IPC mechanisms, regular expressions, files, streams, logging, process execution, scheduling, and more. It also includes a collection of common abstractions like strings, buffers, and object pools.
The GNU Talk Filters are filter programs that convert ordinary English text into text that mimics a stereotyped or otherwise humorous dialect. Some of these filters have been in the public domain for many years, but here they are provided as a single integrated package. The filters include austro, b1ff, brooklyn, chef, cockney, drawl, dubya, fudd, funetak, jethro, jive, kraut, pansy, pirate, postmodern, redneck, valspeak, and warez. This package provides the filters both as individual executables and collectively as a C library, so they can be easily embedded in other programs.
Habotat is a small, lightweight application server for hosting IM services, more commonly known as bots. Bots are small, specialized programs that you can communicate with using an instant messenger (IM) client. They show up in your buddy list and are always there to do your bidding. A simple API is provided for the creation of new bots. The Habotat server supports run-time deployment, so bots can be loaded into the server, activated, rebuilt, and reloaded without requiring a server restart.
libconfig is a compact, portable library for reading, manipulating, and writing structured configuration files. The library includes bindings for both the C and C++ languages, and works on Linux, Mac OS X, and other POSIX-compliant operating systems, as well as Windows. A complete manual with API documentation is included.
MiscTools is a collection of small UNIX utilities that are fairly trivial but nevertheless useful. These include a binary dump program, a directory browser/selector, a file truncator, an ASCII-code lookup utility, a program for printing fortunes, a curses-based terminal lock program, and a few others.
Spyrius is a multithreaded superdaemon that provides TCP connectivity to services that are implemented as loadable modules ("plug-ins"). The daemon was designed with extensibility, ease-of-use, and performance in mind. It was implemented on Solaris 2.x but should be generally portable to other POSIX systems. Spyrius is a prototype and is not a fully-implemented, release-quality package; it is made available in the hopes that it may prove to be useful in other open source projects.
The Kiwi Toolkit is a foundation class library containing many useful classes that complement the Java Foundation Classes (JFC). It includes many classes and components that were not provided with the JFC, such as a TreeTable component, a DateChooser, an MVC charting package (bar charts, line charts, pie charts), a plugin framework for Java, an application resource manager (for loading images, icons, HTML pages, audio clips, and other resources from JAR files), a better internationalization API, and much more.
Nomasvisto, why do you need "hacks" to access string values? Just assign the Setting object to a std::string or const char *.
If you use libconfig, please help pay for the web hosting...make a small donation at www.hyperrealm.com
Yes, you need to escape all backslashes in strings as \\, just like you would in C/C++.
re: SettingCFG, SettingXML I don't understand why this would require changes to libconfig itself; can't you simply implement this framework as a layer on top of libconfig?
re: replace items in a list I think the simplest solution for this would be to add a new function, e.g., for the C API: config_setting_retype_elem(config_setting_t *setting, int index, int type)...
A Hebrew calendar library with dates, holidays, and times of day.