GConf extends the concept of a configuration registry. It provides
a simple way for applications and administrators to store data;
often GConf is used to store preferences for applications.
Some of the features of GConf are:
* Documentation for each configuration key, so that administrators
can better modify the value.
* Notifications to interested applications when configuration data
is changed. The notification service works across networks,
affecting all login sessions for a single user.
* Proper locking so that configuration data doesn't get corrupted
when accessed by multiple applications at the same time.
Gnulib, the GNU portability library, offers a macro system and C
declarations and definitions for commonly-used API elements and
abstracted system behaviors. It can be used to improve portability and
other functionality in your programs.
Gnulib takes a different approach than libiberty. Gnulib components are
intended to be shared at the source level, rather than being a library that
gets built, installed, and linked against. Thus, there is no distribution
tarball; the idea is to copy files from Gnulib into your own source tree.
However, there are bimonthly stable snapshots of the Gnulib codebase
published at http://erislabs.net/ianb/projects/gnulib/
The gettext lint tools is a collection of tools for checking the validity and
consistency of PO and POT files. It also includes an experimental glossary
building tool.
This package includes:
* POFileStatus - PO file validator and status reporting
* POFileChecker - searches for common mistakes in PO files
* POTFileChecker - searches for common mistakes in POT files
* POFileConsistency - PO file consistency checks
* POFileConsistencyShell - PO file consistency checks, interactive mode
* POFileEquiv - PO file glossary generator
All tools generate XML to the standard output; just run them with a list of PO
or POT files to check. Some have extra options, run the command with no
parameters for a short usage message.
Gradle is build automation evolved.
Gradle can automate the building, testing, publishing, deployment
and more of software packages or other types of projects such as
generated static websites, generated documentation or indeed anything
else.
Gradle combines the power and flexibility of Ant with the dependency
management and conventions of Maven into a more effective way to
build. Powered by a Groovy DSL and packed with innovation, Gradle
provides a declarative way to describe all kinds of builds through
sensible defaults. Gradle is quickly becoming the build system of
choice for many open source projects, leading edge enterprises and
legacy automation challenges.
This is Gwenhywfar, a multi-platform (*BSD, Linux, MS-Win, etc.)
helper library for networking and security applications and libraries.
It is used by several 'finance' ports, and possibly others.
Gwenhywfar includes the following features, among several others:
- OS abstraction functions for directory and Internet address handling
and library loading (src/os/)
- Networking functions which allow managing many connections to be used
economically even in single threaded applications
- High-level functions for parsing files with a simplified "XML-like"
format and accessing them like a hierarchical database (src/parser/)
It is able to process valid XML files, too.
- High-level cryptographic functions on top of OpenSSL functionality
(src/crypt/)
The ivykis library is a thin, portable wrapper around OS-provided
mechanisms such as epoll(4), kqueue(2), poll(2) and select(2). It was
mainly designed for building high-performance network applications,
but can be used in any event-driver application that uses pollable
file descriptors as its event sources.
Programs written to the ivykis API are generally single-threaded (or
use only a small number of threads), and never block on I/O. All
input and output is done in a nonblocking fashion, with I/O readiness
notification delivered via callback functions.
JSAP: the Java-based Simple Argument Parser
JSAP parses your command line and instantiates objects of types you specify
based upon that command line. If you configure JSAP to expect an Integer on the
command line, and the user does not provide a String that can be converted to
an Integer, JSAP will alert your program to the fact that there was a problem
with the command line. If JSAP indicates that your command line was
successfully parsed, you are guaranteed an Integer when you request that
parameter's value from your program. There's a pretty big (and growing) list of
return types supported by JSAP.
Parsing a program's command line arguments has always been a distraction from
the main programming task at hand. The argtable library simplifies the job by
enabling the programmer to define the command line options directly in the
source code as a static array of structs and then pass that array to argtable
library functions which parse the command line accordingly. The values
extracted from the command line are deposited directly into user-defined program
variables where they can be accessed by the main program. Argtable can also
generate descriptions of the command line syntax from that same array for
display as on-line help.
An abstract interface to highly-parameterizable queues/deques. Background:
There exists a feature space for queues that extends between:
* simple, single-ended, non-concurrent, bounded queues
* double-ended, threadsafe, growable queues
... with important points inbetween (such as the queues used for
work-stealing). This package includes an interface for Deques that
allows the programmer to use a single API for all of the above, while
using the type-system to select an efficient implementation given the
requirements (using type families). This package also includes a simple
reference implementation based on 'IORef' and "Data.Sequence".
A configuration management library for programs and daemons.
Features include:
* Automatic, dynamic reloading in response to modifications to configuration
files.
* A simple, but flexible, configuration language, supporting several of
the most commonly needed types of data, along with interpolation of
strings from the configuration or the system environment (e.g.
$(HOME)).
* Subscription-based notification of changes to configuration properties.
* An import directive allows the configuration of a complex application
to be split across several smaller files, or common configuration data
to be shared across several applications.