PyAL is a wrapper around the OpenAL library and as such similar to the
discontinued PyOpenAL project. In contrast to PyOpenAL, it has no licensing
restrictions, nor does it rely on C code, but uses ctypes instead.
librmpd is a simple yet powerful Music Player Daemon library written
entirely in Ruby. It provides callback functionality to create an
event/listener type of setup, along with thread safety for threaded apps.
Cram is a functional testing framework for command line applications. Cram
tests look like snippets of interactive shell sessions. Cram runs each command
and compares the command output in the test with the command's actual output.
CPAN::DistnameInfo uses heuristics that have been learnt by
http://search.cpan.org/ to extract the distribution name and version
from filenames and also report if the version is to be treated as
a developer release.
Config::Any provides a facility for Perl applications and libraries to load
configuration data from multiple different file formats. It supports XML, YAML,
JSON, Apache-style configuration, Windows INI files, and even Perl code.
The rationale for this module is as follows: Perl programs are deployed on many
different platforms and integrated with many different systems. Systems
administrators and end users may prefer different configuration formats than the
developers. The flexibility inherent in a multiple format configuration loader
allows different users to make different choices, without generating extra work
for the developers. As a developer you only need to learn a single interface to
be able to use the power of different configuration formats.
DateTimeX::Easy makes DateTime object creation quick and easy. It uses a variety
of DateTime::Format packages to do the bulk of the parsing, with some custom
tweaks to smooth out the rough edges (mainly concerning timezone detection and
selection).
The goal of this module is to offer a simple queue system using the
underlying filesystem for storage, security and to prevent race
conditions via atomic operations. It focuses on simplicity, robustness
and scalability.
IO::File::AtomicChange - change content of a file atomically.
This module truncate and write to temporary file. When you call
$fh->close, replace target file with temporary file preserved
permission and owner (if possible).
This is an abstract role which provides an alternate constructor
for creating objects using parameters passed in from a configuration file.
The actual implementation of reading the configuration file is
left to concrete subroles.
Dealing with all the little details of a forking daemon can be annoying and
hard. POE::Component::Daemon encapsulates all the details into one place
and (hopefully) gets them right.