Tarantool is an efficient NoSQL database and a Lua application server.
Key features of the Lua application server:
* 100% compatible drop-in replacement for Lua 5.1, based on LuaJIT 2.0.
Simply use #!/usr/bin/tarantool instead of #!/usr/bin/lua in your script.
* full support for Lua modules and a rich set of own modules, including
cooperative multitasking, non-blocking I/O, access to external databases,
etc.
Key features of the database:
* MsgPack data format and MsgPack based client-server protocol
* two data engines: 100% in-memory with optional persistence and a 2-level
disk-based B-tree, to use with large data sets
* multiple index types: HASH, TREE, BITSET
* asynchronous master-master replication
* authentication and access control
* the database is just a C extension to the app server and can be turned off
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.
Implements a Perl 5 native version of what the Perl 6 symbol export mechanism
will look like.
It's very straightforward:
* If you want a subroutine to be capable of being exported (when
explicitly requested in the use arguments), you mark it with the
:Export attribute.
* If you want a subroutine to be automatically exported when the module
is used (without specific overriding arguments), you mark it with the
:Export(:DEFAULT) attribute.
* If you want a subroutine to be automatically exported when the module
is used (even if the user specifies overriding arguments), you mark it
with the :Export(:MANDATORY) attribute.
* If the subroutine should also be exported when particular export
groups are requested, you add the names of those export groups to the
attribute's argument list.
That's it.